python-机器学习-决策树-decision tree

标题1.决策树基本概念

标题2.构建决策树

标题3.gini系数-选择根节点的标准

标题4.1分类型变量

标题4.2.数值型变量

决策树

1.1 根节点(root note) 如图所示只有子节点,没有父节点的节点

1.2 非叶子节点与分支(internal note) 如图所示既有父节点,也有子节点的节点

1.3 叶子节点(leaf or leaves note):如图所示仅仅只有父节点的节点1.4

 

1.4 决策树就像一棵树,其中跟节点和内部节点是输入特征的判定条件,叶子结点就是最终结果。

举个例子,判断一个收养者是否符合做孩子的监护人。(纯粹举例子昂,没有任何别的观点)

 

 

 根据房子,车子,月薪来判断一收养者是否适合做孩子的监护人。每一个绿色的叶子结点代表了一个结果。

决策树特征。第一,从根节点开始一步步走到叶子节点(决策的过程)。第二,所有的数据最终都会落到叶子节点,既可以做分类也可以做回归。(线性回归只能做回归;朴素贝叶斯分类模只能做分类

2.构建决策树

2.1 选择根节点

根节点也就是最重要的特征,在选择监护人的例子里面,我们选择是否有房作为根节点。、

选择的标准就是能否最大限度的分类出适合做老公的特征。

比如 是否有房可以筛选出四个符合条件的监护人,是否有车可以是筛选出3个,月薪是否过万,可以选择出4个。

 

 这里就出现一个问题,是否有房和月薪是否过万这两个节点筛选出来好适合做监护人的数目是一样的。

那么应该用什么指标来衡量一个特征的分类效果呢?

这里我们首先介绍gini指标(不纯粹度)。

什么交不纯粹度呢?以是否有房这个特征为例子,在有房子的人当中,不是所有的都是可选择的监护人,也不是所有没有房子的都不适合做监护人。

gini impurity= 1-(probability of 'yes')^2 -(probability of 'no')^2

具体计算过程如下:gini=1-(4/5)^2-(1/5)^2=0.32

;gini=1-(4/5)^2-(1/5)^2=0.32;

                                          

 那么对于整个特征变量的gini系数呢?

我们把这两个赋予权重相加,权重系数计算根据总体yes的概率和总体no的概率。

总体yes5个,no有8个

gini= 5/(5+13)*gini+8/(5+8)*gini = 0.258      

根据上面的算法,我们依次算出三个特征变量的gini系数。

跟节点就是对应Gini指数最小的特征!因为Gini指数衡量的是不纯度,所以不纯度越低,说明分类效果越好。 

看文章的小伙伴们,这里我们应该选择哪个特征变量做根节点呢?

思考一下

嗯,对了,我们选择月薪是否过万这个特征变量。

小伙伴们此刻有没有发现什么问题?

对了,文章一开始作为例子贴的那张根节点的图是错误的,我们不应该选择是否有房作为根节点。

我一开始做的时候个人主观觉得房子很重要,但是根据数据计算出来的gini系数,月薪是否过万这个特征变量才是最好的。

下面我们就用gini系数算的结果,运用到决策树构建过程中。

(1)计算所有节点(特征变量)的gini impurity(就是咱么前面计算的gini)

(2)如果节点本身分数最低,那么没有必要再将备选人员分开,它将成为一个节点叶。

4.1分类型变量就是上文咱么举得例子,特征变量都是‘yes‘或者’no‘.

4.2.数值型特征变量怎么处理呢?

  1. 第一步,对数据进行排序
  2. 第二部,计算平均值(注意不是总体的均值,二是两个数据之间的均值)
  3. 第三部,计算各个数据段的Gini指

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值