【发布时间】:2015-08-25 18:10:25
【问题描述】:
我是机器学习和 Spark MLlib 的新手。我使用RandomForest.trainClassifier() 创建了 RandomForest 分类器模型
我使用测试数据和model.predict() 创建了predictionAndLables RDD 现在我正在尝试以下方法来验证我的模型准确性。
MultiClassMetrics metrics = new MultiClassMetrics(predictionAndLables.rdd())
System.out.println(metrics.precision()); //prints 0.94334140435
System.out.println(metrics.confusionMatrix()); //prints like the following
1948.0 0.0
117.0 0.0
现在,如果您看到使用 precision() 方法打印的模型精度在 94% 附近似乎非常好,但如果您看到上面的混淆矩阵似乎有问题,我在测试数据中有 1948 NonActionable 目标变量和 117 Actionable 目标变量设置。
所以根据混淆矩阵它可以正确地预测 NonActionable 并且完全不能预测 Actionable 变量。我试图理解混淆矩阵以及为什么精度是94%。所以结果看起来矛盾。
【问题讨论】:
-
准确率 = (正确分类的实例)/(总实例) = (1948+0)/(1948+0+117+0) = 0.9433
标签: apache-spark apache-spark-mllib