python-kaggle之旅(3)

经过“数据清洗”与“特征分析”后,现在要正式进入“模型处理”部分啦,这里选择“决策树”作为分类模型,先回顾一波决策树的工作原理~

决策树是一种基本的分类与回归方法,基于特征对实例进行分类,可以认为是if-then规则的集合,具有可读性,分类速度快。决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修建。

(1)特征选择:使用信息增益或信息增益比作为准则,某类特征的信息增益越大则选择该特征的概率越大:g(D,A)=H(D)-H(D|A),H(D)是经验熵,H(D|A)是经验条件熵。

                           随机变量X的熵定义为:H(X)=-∑pilogpi;

(2)决策树生成:可以使用ID3或C4.5算法,前者使用信息增益选择特征,后者使用信息增益比选择特征。信息增益比为信息增益与训练数据集D关于特征A的值的熵之比。

(3)决策树修建:为了防止过拟合需要对决策树进行剪枝。

分类与回归树CART模型是应用广泛的决策树学习方法,既可用于分类又可用于回归。决策树的生成就是递归构建二叉决策树的过程,对回归树用平方误差最小化准则,对分类树用基尼指数(Gini index)最小化准则。

基尼指数:分类问题中,假设有K个类,则样本点属于第k类的概率为pk,则概率分布的基尼指数定义为:Gini(p)=∑pk(1-pk)=1-∑pk2

对于二分类问题,若样本点属于第一个类的概率是p,则概率分布的基尼指数是Gini(p)=2p(1-p)。基尼指数值越大,样本集合的不确定性也就越大,这一点与熵相似。

二类分类问题中,基尼指数、熵之半都可以近似地代表分类误差率。

CART模型:对每个特征A,对其可能取的每个值a,计算每个特征取值下的基尼指数:Gini(D,A)=(|D1|/|D|)*Gini(D1)+(|D2|/|D|)*Gini(D2);每次选择基尼指数最小的特征及其对应的切分点作为最优特征与最优切分点。

通过基尼指数不断得到适合的特征切分点,但是注意树的深度问题!

为了防止过拟合,使用“交叉验证”找到最好的树深度。

交叉验证:重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。

交叉验证又可以分为:简单交叉验证、S折交叉验证、留一交叉验证。

posted on 2019-09-09 20:42  不想睡觉的koala  阅读(126)  评论(0编辑  收藏  举报