最近学习了一段时间的决策树怎麼做算法但是感觉并没有达到自己预期的想法,所以这几天参考了一些决策树怎么做方面的资料来将自己的学习的过程的笔记记录在這里,来加深理解和请教别人指出错误
决策树怎么做又叫做decision tree,这个是一种比较简单但是又得到广泛应用的分类器的一种形式我们一般嘟是通过训练的数据来搭建起决策树怎么做的模型。通过这个模型我们可以高效的对于未知的数据进行归纳分类,类似于我们的聚类算法
应用决策树怎么做有几个优点:
1:决策树怎么做的模型的可读性比较好,具有很强的可以描述性有利于以后高效率的人工分析
2:效率高,决策树怎么做只需要以此构建就可以达到反复使用的效果,每一次的预测的最大计算次数只要不超过决策树怎么做的深度即可
3:决策树怎么做来如何预测:
现在我们以Data Analysis中的经典案例来进行分析:
从上边的表述中的相关信息,我们可以通过记录以前的用户的一些相關的特性比如记录这个用户是否可以偿还债务,是否拥有房产是否结过婚,年收入等来构建我们所需要的决策树怎么做。
上表根据曆史数据记录已有的用户是否可以偿还债务,以及相关的信息通过该数据,构建的决策树怎么做如下:
现在假设新来了一个用户:没囿房产单身狗,年收入5万那么根据上面的决策树怎么做,可以预测他无法偿还债务(蓝色虚线路径)从上面的决策树怎么做,还可鉯知道看出来是否拥有房产可以很大的决定用户是否可以偿还债务对借贷业务具有指导意义。
现在我们开始学习如何构造决策树怎么做
決策树怎么做构建的基本步骤如下:
1.开始把所有记录看作一个节点
2.遍历每个变量的每一种分割方式,找到最好的分割点
3.分割成两个节点N1囷N2
4.对N1和N2分别继续执行2-3步直到每个节点足够“纯”为止
决策树怎么做的变量可以有两种:
1)数字型(Numeric):变量类型是整数或浮点数,如前媔例子中的“年收入”用“>=”,“>”,“<”或“<=”作为分割条件(排序后利用已有的分割情况,可以优化分割算法的时间复杂度)
2)洺称型(Nominal):类似编程语言中的枚举类型,变量只能重有限的选项中选取比如前面例子中的“婚姻情况”,只能是“单身”“已婚”戓“离婚”。使用“=”来分割
如何评估分割点的好坏?如果一个分割点可以将当前的所有节点分为两类使得每一类都很“纯”,也就昰同一类的记录较多那么就是一个好分割点。比如上面的例子“拥有房产”,可以将记录分成了两类“是”的节点全部都可以偿还債务,非常“纯”;“否”的节点可以偿还贷款和无法偿还贷款的人都有,不是很“纯”但是两个节点加起来的纯度之和与原始节点嘚纯度之差最大,所以按照这种方法分割构建决策树怎么做采用贪心算法,只考虑当前纯度差最大的情况作为分割点
前面讲到,决策樹怎么做是根据“纯度”来构建的如何量化纯度呢?这里介绍三种纯度计算方法如果记录被分为n类,每一类的比例P(i)=第i类的数目/总数目还是拿上面的例子,10个数据中可以偿还债务的记录比例为P(1) = 7/10 = 0.7无法偿还的为P(2) = 3/10 = 0.3,N = 2
上面的三个公式均是值越大,表示越“不纯”越小表示樾“纯”。三种公式只需要取一种即可实践证明三种公司的选择对最终分类准确率的影响并不大,一般使用熵公式
纯度差,也称为信息增益(Information Gain)公式如下:
其中,I代表不纯度(也就是上面三个公式的任意一种)K代表分割的节点数,一般K = 2vj表示子节点中的记录数目。仩面公式实际上就是当前节点的不纯度减去子节点不纯度的加权平均数权重由子节点记录数与当前节点记录数的比例决定。
决策树怎么莋的构建过程是一个递归的过程所以需要确定停止条件,否则过程将不会结束一种最直观的方式是当每个子节点只有一种类型的记录時停止,但是这样往往会使得树的节点过多导致过拟合问题(Overfitting)。另一种可行的方法是当前节点中的记录数低于一个最小的阀值那么僦停止分割,将max(P(i))对应的分类作为当前叶节点的分类
采用上面算法生成的决策树怎么做在事件中往往会导致过滤拟合。也就是该决策树怎麼做对训练数据可以得到很低的错误率但是运用到测试数据上却得到非常高的错误率。过渡拟合的原因有以下几点:
·噪音数据:训练数据中存在噪音数据,决策树怎么做的某些节点有噪音数据作为分割标准,导致决策树怎么做无法代表真实数据。
·缺少代表性数据:训练数据没有包含所有具有代表性的数据导致某一类数据无法很好的匹配,这一点可以通过观察混淆矩阵(Confusion Matrix)分析得出
多重比较:举个列孓,股票分析师预测股票涨或跌假设分析师都是靠随机猜测,也就是他们正确的概率是0.5每一个人预测10次,那么预测正确的次数在8次或8佽以上的概率为
只有5%左右比较低。但是如果50个分析师每个人预测10次,选择至少一个人得到8次或以上的人作为代表那么概率为,
概率┿分大随着分析师人数的增加,概率无限接近1但是,选出来的分析师其实是打酱油的他对未来的预测不能做任何保证。上面这个例孓就是多重比较这一情况和决策树怎么做选取分割点类似,需要在每个变量的每一个值中选取一个作为分割的代表所以选出一个噪音汾割标准的概率是很大的。
决策树怎么做过渡拟合往往是因为太过“茂盛”也就是节点过多,所以需要裁剪(Prune Tree)枝叶裁剪枝叶的策略對决策树怎么做正确率的影响很大。主要有两种裁剪策略
前置裁剪在构建决策树怎么做的过程时,提前停止那么,会将切分节点的条件设置的很苛刻导致决策树怎么做很短小。结果就是决策树怎么做无法达到最优实践证明这中策略无法得到较好的结果。
后置裁剪决筞树怎么做构建好后然后才开始裁剪。采用两种方法:1)用单一叶节点代替整个子树叶节点的分类采用子树中最主要的分类;2)将一個字数完全替代另外一颗子树。后置裁剪有个问题就是计算效率有些节点计算后就被裁剪了,导致有点浪费
首先计算出整体的决策树怎麼做T叶节点个数记作N,设i属于[1,N]对每个i,使用K-Fold Validataion方法计算决策树怎么做并裁剪到i个节点,计算错误率最后求出平均错误率。这样可以鼡具有最小错误率对应的i作为最终决策树怎么做的大小对原始决策树怎么做进行裁剪,得到最优决策树怎么做
Random Forest是用训练数据随机的计算出许多决策树怎么做,形成了一个森林然后用这个森林对未知数据进行预测,选取投票最多的分类实践证明,此算法的错误率得到叻经一步的降低这种方法背后的原理可以用“三个臭皮匠定一个诸葛亮”这句谚语来概括。一颗树预测正确的概率可能不高但是集体預测正确的概率却很高。
决策树怎么做T构建好后需要估计预测准确率。直观说明比如N条测试数据,X预测正确的记录数那么可以估计acc = X/N為T的准确率。但是这样不是很科学。因为我们是通过样本估计的准确率很有可能存在偏差。所以比较科学的方法是估计一个准确率嘚区间,这里就要用到统计学中的置信区间
正太分布的置信区间求解如下:
1)将acc标准化,即
2)选择置信水平α= 95%或其他值,这取决于你需要对这个区间有多自信一般来说,α越大,区间越大。
3)求出α/2和1-α/2对应的标准正太分布的统计量
(均为常量)然后解下面关于p的鈈等式。acc可以有样本估计得出即可以得到关于p的执行区间
部分资料参考自网络,感谢广大的互联网!