决策树和随机森林实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

随机森林算法简介
2001年Breiman把分类树组合成随机森林(Breiman 2001a),即在变量(列) 的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类 树的结果。随机森林在运算量没有显著提高的前提下提高了预测精度。随 机森林对多元公线性不敏感,结果对缺失数据和非平衡的数据比较稳健, 可以很好地预测多达几千个解释变量的作用(Breiman 2001b),被誉为当 前最好的算法之一(Iverson et al. 2008)。 随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决 策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后, 当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行 一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪 一类被选择最多,就预测这个样本为那一类。
提纲
决策树算法和随机森林算法简介 决策树和随机森林实践
Python 进行决策树和随机森林实践
• 系统准备:centos6.8、Spark 2.3.1、Pyrhon3.X • 数据准备:采用UCI机器学习库中的wine数据集作为算法数据,包括了三种酒中13
种不同成分的数量。成分分别为:Alcohol,Malicacid,Ash,lcalinity of ash, Magnesium,Total phenols,Flavanoids,Nonflavanoid phenols,Proanthocyanins, Color intensity,Hue,OD280/OD315 of diluted wines,Proline。在 “wine.data”文 件中,每行代表一种酒的样本,共有178个样本;一共有14列,其中,第一列为 类标志属性,共有三类,分别记为“1”,“2”,“3”;后面的13列为每个样本的 对应属性的样本值。第1类有59个样本,第2类有71个样本,第3类有48个样本。 • 建模目的:训练决策树模型,使得知道13个特征后,把样本划归到相应类别。
随机森林算法的优点
1. 在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合 2. 在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入, 使得随机森林具有很好的抗噪声能力 3. 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据 集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规 范化 4. 在训练过程中,能够检测到feature间的互相影响
决策树和随机森林简介 与python实践
演讲人:
时间:
提纲
决策树算法和随机森林算法简介 决策树和随机森林实践
决策树算法 简介
决策树是一种用于对实例进行分类的树形结构。决策树由节点(node)和 有向边(directed edge)组成。节点的类型有两种:内部节点和叶子节点。 其中,内部节点表示一个特征或属性的测试条件(用于分开具有不同特性 的记录),叶子节点表示一个分类。 一旦我们构造了一个决策树模型,以它为基础来进行分类将是非常容易的。 具体做法是,从根节点开始,地实例的某一特征进行测试,根据测试结构 将实例分配到其子节点(也就是选择适当的分支);沿着该分支可能达到 叶子节点或者到达另一个内部节点时,那么就使用新的测试条件递归执行 下去,直到抵达一个叶子节点。当到达叶子节点时,我们便得到了最终的 分类结果。
实例: 初始化spark,数据处理划分
# -*-coding:utf-8-*from pyspark import SparkConf, SparkContext from pyspark.mllib.evaluation import MulticlassMetrics from pyspark.mllib.tree import DecisionTree, RandomForest from pyspark.mllib.regression import LabeledPoint # 初始化sparkContext conf = SparkConf().setMaster("local").setAppName("My Demo") sc = SparkContext(conf=conf) # 读取数据 wine_rdd = sc.textFile(u"file:/root/Documents/liangdong/work/laboratory/wine数据集.txt").map(
决策树案例
Βιβλιοθήκη Baidu
左图 是一棵结构简单的决策树,用于预测贷款用户
是否具有偿还贷款的能力。贷款用户主要具备三个
属性:是否拥有房产,是否结婚,平均月收入。每
一个内部节点都表示一个属性条件判断,叶子节点
表示贷款用户是否具有偿还能力。例如:用户甲没 有房产,没有结婚,月收入 5K。通过决策树的根节 点判断,用户甲符合右边分支 (拥有房产为“否”); 再判断是否结婚,用户甲符合左边分支 (是否结婚 为否);然后判断月收入是否大于 4k,用户甲符合 左边分支 (月收入大于 4K),该用户落在“可以偿还” 的叶子节点上。所以预测用户甲具备偿还贷款能力。
决策树的主要优点
1.简单直观,生成的决策树很直观。 2.基本不需要预处理,不需要提前归一化,处理缺失值。 3.使用决策树预测的代价是O(log2m)O(log2m)。 m为样本数。 4.既可以处理离散值也可以处理连续值。很多算法只是专注于离散值或者 连续值。 5.可以处理多维度输出的分类问题。 6.相比于神经网络之类的黑盒分类模型,决策树在逻辑上可以得到很好的 解释 7.可以交叉验证的剪枝来选择模型,从而提高泛化能力。 8.对于异常点的容错能力好,健壮性高。
决策树的主要缺点
1.决策树算法非常容易过拟合,导致泛化能力不强。可以通过设置节点最少 样本数量和限制决策树深度来改进。 2.决策树会因为样本发生一点点的改动,就会导致树结构的剧烈改变。这个 可以通过集成学习之类的方法解决。 3.寻找最优的决策树是一个NP难的问题,我们一般是通过启发式方法,容 易陷入局部最优。可以通过集成学习之类的方法来改善。 4.有些比较复杂的关系,决策树很难学习,比如异或。这个就没有办法了, 一般这种关系可以换神经网络分类方法来解决。 5.如果某些特征的样本比例过大,生成决策树容易偏向于这些特征。这个可 以通过调节样本权重来改善。
相关文档
最新文档