类别 | 算法名称 | 需求格式 | 评估方法 |
聚类算法 | KMeans | RDD[Verctor] | |
分类算法 | DecisionTree(决策树) | RDD[LabeledPoint] | ACU,F-measure,ROC |
LogisticRegression(逻辑回归) | RDD[LabeledPoint] | ACU,F-measure,ROC | |
NaiveBayes(朴素贝叶斯) | RDD[LabeledPoint] | ACU,F-measure,ROC | |
SVM(支持向量机) | RDD[LabeledPoint] | ACU,F-measure,ROC | |
回归算法 | LinearRegression(线性回归) | RDD[LabeledPoint] | 自定义 |
RidgeRegression(岭回归) | RDD[LabeledPoint] | 自定义 | |
Lasso | RDD[LabeledPoint] | 自定义 | |
推荐算法 | ALS | RDD[rating] |
(1)LabeledPoint: LabeledPoint数据格式是Spark自己定义的一种数据格式,他的原型是LIBSVM(大学副教授开发的一种简单、易用和快速有效的SVM模式识别与回归的软件包)输入数据的格式类型。LabeledPoint是一种标签数据,数据结构分为label 和features两部分。具体结构为,label index1:value1 index2:value2 ...,其中label为标签数据,index1,index2为特征值序号,value1,value2为特征值。
(2) 自定义:Spark目前没有一个通用的类去评估回归模型,只是在例子中自己写的一个小方法去评估模型,方法如下:
val loss = predictionAndLabel.map { case (p, l) => //预测结果为p和标签值为l
val err = p – l //通过p-l获得误差值err
err * err //误差平方
}.reduce(_ + _) //把所有误差平方相加求平方和
val rmse = math.sqrt(loss / numTest) //平均样本误差下载本文