Spark Mllib - 预测所有记录的相同值

时间:2017-03-27 14:51:57

标签: apache-spark apache-spark-mllib

我一直试图在一组数据上测试一个布尔值的预测一段时间,我从来没有达到任何远程满意的效果。 我的测试数据如下所示:

+-----+-----+-----+-------+-----------+---------+---------+---------+---------+---------+--------+-------+
|ismob|cprom|ccoup|tmodals|      idxtp|   ptaddr|addrtopay|  paytthx|  paytacc|  acctthx|churncpt|churned|
+-----+-----+-----+-------+-----------+---------+---------+---------+---------+---------+--------+-------+
|false| 0030| 6728|      1|       71.0|     71.0|    161.0|   1518.0|   1496.0|     22.0|       2|   true
|false| 0030| 6728|      1|      137.0|     55.0|     90.0|    151.0|      0.0|      0.0|       1|   true
|false| 0030| 6728|      1|      178.0|     40.0|     41.0|    226.0|     60.0|    166.0|       0|  false
|false| 0030| 6728|      1|      236.0|     69.0|     91.0|    154.0|    115.0|     39.0|       0|  false
|false| 0030| 6728|      1|      260.0|     24.0|     47.0|    133.0|    101.0|     32.0|       0|  false
|false| 0030| 6728|      1|      281.0|     39.0|     44.0|    620.0|    465.0|    155.0|       0|  false
|false| 0030| 6728|      1|      293.0|     46.0|     27.0|     89.0|     58.0|     31.0|       1|  false
|false| 0030| 6728|      1|      415.0|    237.0|     61.0|    277.0|    252.0|     25.0|       0|  false
|false| 0030| 6728|      1|     1149.0|   1358.0|   1378.0|    811.0|      0.0|      0.0|       0|  false

最后一栏是我想预测的那一栏。

我使用StringIndexer作为boolean,cprom和ccoup列。

我尝试过GBTClassifier,RandomForestClassifier,LinearRegression和其他我不记得但结果永远不对。

我将0.7,0.3的数据拆分为测试算法,就像你在例子中一直看到的那样。通常测试数据有大约8000条记录,其中2000条记录的流失布尔值为true。 训练数据大约有20k条记录,其中4000条记录的布尔值为真。

结果是:

  1. 我没有列churncpt功能。

    所有记录的预测均为假。根据使用的分类器,我可能有1到10个预测为真。这显然是错误的。

  2. 列churncpt是该功能的一部分。

    请注意,当布尔流失为真时,churncpt列不为0,但反过来情况并非总是如此。

    这里的预测根本不是一个预测,如果churncpt>,则流失布尔值为真。 0同样不对。

  3. 我有一种感觉,我的训练数据(在一列旁边)完全被忽略或无用,并且有一列将事情搞砸了,在我的数据上使用if语句设置布尔值会更快。< / p>

    我还在每个分类器上尝试了几个参数无济于事。我在我的功能上尝试过ChiSqSelector来修剪它们,但它也没有帮助。

    • 我如何构建数据以便学习上班?
    • 我首先有足够的数据吗?

    我很乐意对预测布尔值有所了解。

    非常感谢你的帮助。

0 个答案:

没有答案