spark mllib中决策树优缺点是什么

75次阅读
没有评论

共计 2243 个字符,预计需要花费 6 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 spark mllib 中决策树优缺点是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

决策树的优点:

可以生成可以理解的规则。

计算量相对来说不是很大。

可以处理连续和种类字段。

决策树可以清晰的显示哪些字段比较重要

决策树的缺点:

对连续性的字段比较难预测。

对有时间顺序的数据,需要很多预处理的工作。

当类别太多时,错误可能就会增加的比较快。

一般的算法分类的时候,只是根据一个字段来分类。

出去玩记录表出去玩温度起风下雨湿度 110010101100100111001100011100 运行代码如下

package spark.DT
import org.apache.spark.mllib.tree.DecisionTree
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.{SparkContext, SparkConf}
 *  决策树使用案例-出去玩
 * ********************************** 决策树 ********************************
 *  决策树是一种监督学习,监督学习,就是给定一对样本,每个样本都有一组属性和一个类别, *  这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给
 *  出正确的分类.其原理是:从一组无序无规则的因素中归纳总结出符合要求的分类规则.
 *
 *  决策树算法基础:信息熵,ID3
 *  信息熵:对事件中不确定的信息的度量.一个事件或属性中,其信息熵越大,含有的不确定信
 *  息越大,对数据分析的计算也越有益.故,信息熵的选择总是选择当前事件中拥有最高
 *  信息熵的那个属性作为待测属性.
 * ID3:一种贪心算法,用来构造决策树.以信息熵的下降速度作为测试属性的标准,即在每个
 *  节点选取还尚未被用来划分的,具有最高信息增益的属性作为划分标准,然后继续这个过程, *  直到生成的决策树能完美分类训练样例.
 *
 *  使用场景:任何一个只要符合 key-value 模式的分类数据都可以根据决策树进行推断.
 *
 *  决策树用来预测的对象是固定的,丛根到叶子节点的一条特定路线就是一个分类规则,决定
 *  一个分类算法和结果.
 *
 * ********************************** 决策树 ********************************
 * Created by eric on 16-7-19.
 */
object DT { val conf = new SparkConf() // 创建环境变量
 .setMaster(local) // 设置本地化处理
 .setAppName(ZombieBayes) // 设定名称
 val sc = new SparkContext(conf)
 def main(args: Array[String]) { val data = MLUtils.loadLibSVMFile(sc,  ./src/main/spark/DT/DTree.txt )
 val numClasses = 2// 分类数量
 val categorycalFeaturesInfo = Map[Int, Int]()// 设定输入格式
 val impurity =  entropy  // 设定信息增益计算方式
 val maxDepth = 5 // 最大深度
 val maxBins = 3 // 设定分割数据集
 val model = DecisionTree.trainClassifier(
 data,// 输入数据集
 numClasses,// 分类数量,本例只有出去,不出去,共两类
 categorycalFeaturesInfo,//  属性对格式,这里是单纯的键值对
 impurity,// 计算信息增益形式
 maxDepth,//  树的高度
 maxBins// 能够分裂的数据集合数量
 )
 println(model.topNode)
 println(model.numNodes)//5
 println(model.algo)//Classification
 }
}
DTree.txt
1 1:1 2:0 3:0 4:1
0 1:1 2:0 3:1 4:1
0 1:0 2:1 3:0 4:0
1 1:1 2:1 3:0 4:0
1 1:1 2:0 3:0 4:0
1 1:1 2:1 3:0 4:0

结果如下

id = 1, isLeaf = false, predict = 1.0 (prob = 0.6666666666666666), impurity = 0.9182958340544896, split = Some(Feature = 0, threshold = 0.0, featureType = Continuous, categories = List()), stats = Some(gain = 0.31668908831502096, impurity = 0.9182958340544896, left impurity = 0.0, right impurity = 0.7219280948873623)

5

Classification

看完了这篇文章,相信你对“spark mllib 中决策树优缺点是什么”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2243字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)