机器学习之——通俗理解决策树

    对于分类问题,我们经常会用一系列的特征进行判断,比如我是银行的营业员,有个人来我公司贷款,我需要对这个人进行评估以确定是否可以贷款,这个评估过程,是一系列的if else 的判断过程,如果这个人有车有房,那我认为他有偿还基础,那就可以贷款给他,如果他没车没房,但是有稳定工作,收入还算可以,那我也可以贷款给他……抽象出来就是,有一系列的分类特征,这些特征具有不同的优先级评判顺序,比如刚刚这个例子,车房有无是最高优先级特征,其次是是否有稳定工作……最后的分类结果就是是否可以贷款给他。

    那如何对这些特征重要性进行一个排序呢?

    从直观角度理解,举一个很简单的例子,去男厕所还是女厕所的问题,特征一是:性别,特征二是:年龄。在不考虑特殊情况下,我们肯定会优先选择性别特征进行分类上厕所。因为绝大部分人都是,男的上男厕所,女的上女厕所,即绝大部分样本,可以通过这个特征很容易的就分好了类;而另一个特征相对弱一些。

    思考一下,这些特征的重要性和什么有关系呢?

    首先应该与该特征下,每个子特征的类别比例有关,就比如,性别这个特征,男性子特征下,去男厕所的比例和去女厕所的比例;假如一个比例超级高,一个比例超级低,那这个子特征可以代表这个类别了。那其他子特征呢?我们评估的是整个特征啊,那好办,我们为每个子特征加个权值吧,这个权值就是该子特征在整个特征中所占的比例,就比如整个性别特征,男性所占的比例,女性所占的比例就分别作为每个子特征的权值。

    接下来的问题就是,我们应该如果评判,子特征代表类的程度呢?它应该具有一些特点,就是分类比例差越大,性能越好,比例越均衡,越没有代表性。有没有一种函数也是有这样的特点呢?比例越接近1或者0,性能越好,比例越接近0.5,性能越不好。人们想出了一个函数:   -nlogn

接下来我们只需要用子特征下的分类比例替换n,然后在前面乘个权重,最后做和就可以作为一种特征重要性的度量。

    然而有一个问题:假设其中有个特征,如名字,一个人一个名字,如果我们按照名字进行分类,岂不是很尴尬。虽然最后分类效果好,但并不是我们想要的分类结果,有的人可能会说,把一些无用的特征踢掉不就好了,实际中往往会有一些情况,这个特征有用,但依旧像名字一样,这个特征的子特征很多,每个子特征对应的样本很少,于是导致鲁棒性太差了,即再来一个新的样本,我们很有可能分类分错。

    如何解决这个问题呢?

    我们其实可以用同样的方法,把n换成子特征所占比例,上面的步骤乘完权重后,再除以这个比例,最后做和就可以了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值