Spark笔记--机器学习基本数据格式
Spark 集成算法的数据格式即评估方法
类别 |
算法名称 |
需求格式 |
评估方法 |
聚类算法 |
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) //平均样本误差
Spark基础数据结构:http://blog.csdn.net/canglingye/article/details/41316193
Spark MLlib实现朴素的贝叶斯分类:http://blog.selfup.cn/683.html