决策树与随机森林

    科技2025-06-25  6

    一、决策树

    决策树(分类)定义:分类决策树模型是一种描述对实例进行分类得树形结构,决策树由节点(node)和有向边(directed edge)组成,节点有两种类型:内部节点(internal node)和叶结点(leaf node),内部结构表示一个特征或属性,叶结点表示一个类; 信息熵:单位比特,计算公式如信息增益:决策树得划分依据之一,特征A对训练数据集D的信息增益g(D,A),定义为集合D的信息熵H(D)与特征A给定条件下D的信息条件熵H(D|A)之差,即公式为 常见决策树使用得算法:ID3:信息增益;C4.5:信息增益比;CART:回归树是平方误差最小,分类树采用得是基尼系数; sklearn决策树API:sklearn.tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None,random_state=None),其中,criterion:默认是’gini’系数,也可以选择信息增益的熵’entropy’,max_depth:树的深度大小,random_state:随机数种子;decision_path:返回决策树的路径 决策树的结构、本地保存:sklearn.tree.export_graphviz() 该函数能够导出DOT格式 tree.export_graphviz(estimator,out_file='tree.dot’,feature_names=[‘’,’’] 工具:graphviz,ubuntu:sudo apt-get install graphviz,Mac:brew install graphviz,运行命令dot -Tpng tree.dot -o tree.png 优缺点:优点:简单的理解和解释,树木可视化,需要很少的数据准备;缺点:对于较复杂的树容易过拟合;决策树不稳定,数据的小变化可能会导致完全不同的树被生成; 改进方法:减枝cart算法,随机森林

    二、随机森林

    随机森林:在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 算法流程:根据如下规则而建造每棵树:用N来表示训练用例(样本)的个数,M表示特征数目;输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M;从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差; 随机性解释:样本随机:如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的;有放回:如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是“有偏的”,都是绝对“片面的”(当然这样说可能不对),也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决。 sklearn 随机森林API :sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None),n_estimators:integer,optional(default = 10) 森林里的树木数量;criteria:string,可选(default =“gini”)分割特征的测量方法;max_depth:integer或None,可选(默认=无)树的最大深度;bootstrap:boolean,optional(default = True)是否在构建树时使用放回抽样 随机森林优缺点:优点:在当前所有算法中,具有极好的准确率;能够有效地运行在大数据集上;能够处理具有高维特征的输入样本,而且不需要降维;能够评估各个特征在分类问题上的重要性;对于缺省值问题也能够获得很好得结果;缺点:当随机森林中决策树个数很多时,训练时需要的空间和时间会比较大;在噪音比较大的样本集熵,RF模型容易陷入过拟合;

    Processed: 0.059, SQL: 8