如何解决多类分类,使用 Spark
使用鸢尾花数据集(LogisticRegressionWithLBFGS(),多类分类)。 我将我的数据拉到一个 rdd 中,转换为一个 Dataframe,对其进行了一些整理。在 Iris 植物类别/标签字段上创建了一个标签索引。创建了其他字段的特征向量。 将数据帧的这两个字段转换为 labelpoint rdd 实例,我可以在其中将数据输入 LogisticRegressionWithLBFGS()。
这是一些预测器代码:
val model = new LogisticRegressionWithLBFGS()
.setNumClasses(10)
.setIntercept(true)
.setValidateData(true)
.run(training)
分数和标签:
val scoreAndLabels_ofTrain = training.map {
point =>
val score = model.predict(point.features)
(score,point.label)
}
我想看看预测
scoreAndLabels_ofTrain.take(200).foreach(println)
唯一的问题是,我几乎从书中得到了这个例子。 我很希望看到一个数据集,它显示了特征列、预测数字是多少、它给出的概率分数等 如果我想查看它们代表的字符串数据,我想我需要对 labelindex 进行转换。
如何获得更好看的表格数据,尽可能接近原始数据集,并针对它们进行预测? 我想我在某处错过了一个技巧。
上面的输出看起来像:
(2.0,2.0)
(2.0,2.0)
...
这到底是什么意思?不确定如何读取/解释数据 对于第一行,是不是说,它预测了“2.0”,而实际标签是“2.0”? 我理解对了吗?
解决方法
是的,当您将地图应用于输入数据集并对每个元素进行预测时,您所拥有的是 RDD[(Double,Double)] 形式的 (Label,Prediction) .但是,您正在使用 mlib LR 实现。您可以直接使用 Dataframe 实现。看看example。拟合函数优化模型并返回 LogisticRagressionModel。将转换方法应用于您的输入数据帧,并会添加一个带有预测的新列。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。