首页 > 解决方案 > PYSPARK - 预测的目标标签缺少一类 - 逻辑回归

问题描述

我刚刚开始了我的 Pyspark 之旅,构建了一个逻辑回归模型,可以预测用户的设备类型(平板电脑、手机、电视、平板电脑和台式机)。

我有 4 个特点:

  1. 总分钟数
  2. vendor_version(iOS、Web、Android 等)
  3. day_of_week
  4. time_of_day

准确性

该算法正在运行,并且我的准确率很高~ 83%,当我进行最终检查以查看我的预测目标标签(device_type)时,我可以看到我缺少一个类(pad)。

原型

起初,我正在使用小数据进行原型设计,并认为它可能需要更多数据。所以我抓取了更多数据(100 万行)并运行了 Log Reg 模型。

在检查预测目标类标签时,我仍然缺少一个类(pad)。有没有人遇到过同样的问题?

假设

我一开始的假设是,“pad”类标签非常小(完整数据中的 3312 行,尚未拆分为训练和测试,而其他目标类标签的数据行及以上为 150,000 行)以至于 Log Reg 甚至没有打扰预测它。

问题

会是这样吗?或者还有其他我应该检查的东西吗?

我的同事在 Scala 中运行了相同的算法,但在他的预测表中包含所有目标类标签。所以我不确定这里有什么问题。

如果您需要更多信息,请告诉我。

以下是数据的示例:

device_id   vendor_version  total_minutes   dow hour    device_type
1   TV           100                5               22          tv
2   Web           20                6               10          desktop
3   iOs            4                3               9           phone
4   Android    12030                7               15          pad
5   Chromecast  2300                2               12          tablet
6   Playstation  587                1               3           tv

最好的,

标签: pythonapache-sparkpysparkapache-spark-mlliblogistic-regression

解决方案


我建议你打印一个混淆矩阵,你可以验证你的“类不平衡”假设。这个问题与机器学习的关系比 spark 或 pyspkark 更重要。

编辑:您可以在此处找到有关混淆矩阵的详细信息。此外,您可能会发现此链接很有帮助。


推荐阅读