【问题标题】:PYSPARK - Predicted Target Label MISSING one class - Logistic regressionPYSPARK - 预测的目标标签缺少一类 - 逻辑回归
【发布时间】:2018-11-22 11:47:44
【问题描述】:

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

我有 4 个特点:

  1. total_minutes
  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

最好的,

【问题讨论】:

  • 缺少一个类是什么意思?你能edit你的问题并显示一些代码+输出来显示你缺少一个类吗?此外,概述(简要)您如何将 LR 设置为多标签预测器。

标签: python apache-spark pyspark apache-spark-mllib logistic-regression


【解决方案1】:

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

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

【讨论】:

  • 好吧,我没有打印出混淆矩阵。但我设法得到了预测的不同类别的概率。最后一类对于所有值的概率非常小,为 0.04 % 或更低。这似乎再次强化了我的假设。虽然很好奇我的同事能够在他的预测中得到所有目标类。
  • 我仍然认为您应该打印混淆矩阵,您的同事是否使用完全相同的 log reg(包/算法/编程语言)来达到相同的结果?如果您和您的同事使用完全相同的代码并获得不同的结果,那么这是代码的问题,如果存在差异,那么您必须分析结果以及您正在使用的算法(包/库)。
猜你喜欢
  • 2015-07-23
  • 2021-06-17
  • 2017-08-23
  • 2016-02-06
  • 1970-01-01
  • 2020-10-24
  • 2018-12-05
  • 2020-06-26
  • 1970-01-01
相关资源
最近更新 更多