大数据开发之机器学习总结(Mllib示例)(五)
背景
- 作为spark框架中支持机器学习的模块,其算法库核心内容如下
- 可以看到,主要就是分类,回归,决策树等算法
1. 分类算法
- 分类算法属于监督式学习,使用类标签已知的样本建立一个分类函数或分类模型,应用分类模型,能把数据库中的类标签未知的数据进行归类
- 分类在数据挖掘中是一项重要的任务,目前在商业上应用最多,常见的典型应用场景有流失预测、精确营销、客户获取、个性偏好等
- MLlib 目前支持分类算法有:
逻辑回归、支持向量机、朴素贝叶斯和决策树
导入训练数据集,然后在训练集上执行训练算法,最后在所得模型上进行预测并计算训练误差
import org.apache.spark.SparkContext
import org.apache.spark.mllib.classification.SVMWithSGD
import org.apache.spark.mllib.regression.LabeledPoint
// 加载和解析数据文件
val data = sc.textFile("mllib/data/sample_svm_data.txt")
val parsedData = data.map {
line =>
val parts = line.split(' ')
LabeledPoint(parts(0).toDouble, parts.tail.map(x => x.toDouble).toArray)
}
// 设置迭代次数并进行进行训练
val numIterations = 20
val model = SVMWithSGD.train(parsedData, numIterations)
// 统计分类错误的样本比例
val labelAndPreds = parsedData.map {
point =>
val prediction = model.predict(point.features)
(point.label