SparkMLlib分类算法之决策树学习
(一) 决策树的基本概念
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。通过信息增益来筛选出属性的优先性。
1)对连续性的字段比较难预测。
2)对有时间顺序的数据,需要很多预处理的工作。
3)当类别太多时,错误可能就会增加的比较快。
4)一般的算法分类的时候,只是根据一个字段来分类。
(二) SparkMLlib对决策树应用
1,数据集的准备:参考:http://www.cnblogs.com/ksWorld/p/6882398.html
2,数据预处理及获取训练集和测试集
val orig_file=sc.textFile("train_nohead.tsv")//println(orig_file.first())
val data_file=orig_file.map(_.split("\t")).map{
r=>val trimmed=r.map(_.r