热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

机器学习之决策树——ID3算法简介

决策树简介在相亲过程中,女方会根据男方的一些特征(年龄、长相、收入、是否公务员)来决策自己的行为(见还是不见)。如果利用kNN算法来预测女方是否去见相亲对象的话,需要保存样本数据,且需要将年龄

决策树简介



    在相亲过程中,女方会根据男方的一些特征(年龄、长相、收入、是否公务员)来决策自己的行为(见还是不见)。如果利用kNN算法来预测女方是否去见相亲对象的话,需要保存样本数据,且需要将年龄等这些特征先转换为对应的数值,同时需要对所有数据计算距离值,非常耗时。因此,我们可以利用概率测量方法(决策树)来处理分类问题。

决策树定义

    决策树的基本组成部分:决策节点、分支和叶子。

    在上图中,第一次的决策节点是年龄;分支是长相、收入、公务员;叶子是见、不见。上图就是利用决策树进行分类的过程,是我们需要的结果。

ID3算法简介

    对于女方来说,一个男人的特征权重是不一样的,到底哪个最重要,哪个次之,是需要进行分类的。如何分类,我们就需要利用一些决策树算法。下面将介绍一种算法:ID3算法。

    ID3算法使用信息增益度来进行分类,关于相关概念,我们用一个简单的示例来介绍。

基于ID3算法的分类流程

1、样本数据如下:



2、计算根结点的熵值:

从类别来看,好=6次,差=6次,因此,根结点的熵值为:

E=-(6/12)log2(6/12)-(6/12)log2(6/12)=1


信息熵的普及:

信息熵表示的是不确定的量度。信息存在不确定性,一般来说,小概率事件比大概率事件包含的信息量大,而熵就是度量信息量大小的方法。假设X是一个离散随机变量,X的熵定义为:


对于结果只有2种情况(如好和差),即P{X=0}=p,P{X=1}=1-p,则H(X)=plogp-(1-p)log(1-p),熵函数曲线如下:



3、计算样本中各个属性(性格、父母的教育程度、性别)的熵值及信息增益度:

对于属性“性格”来说,分为“内向”和“外向”。我们先来计算“内向”的信息熵:


E(性格,内向)=-(4/6)log2(4/6)-(2/6)log2(2/6)=0.9183

以此内推:

E(性格,外向)=-(4/6)log2(4/6)-(2/6)log2(2/6)=0.9183

所以,属性为性格的信息增益度为:

Gain(性格)=E-E(性格)=1-[(1/2)*0.9183+(1/2)*0.9183]=0.0817

同理可得:

Gain(父母教育程度)=0.4591

Gain(性别)=0


4、按照信息增益度的大小进行第一次分类:

因为Gain(父母的教育程度)>Gain(性格)>Gain(性别),所以第一次划分属性时,以“父母的教育程度”进行划分,其第一次的决策树如下图:



5、计算样本中各个属性(性格、性别)的熵值和增益度:

经过一次划分后,属性“父母教育程度”为良的结果都为“好”;因此,第二次划分的样本如下:


Gain(性格)=0.3113

Gain(性别)=0.2045


6、按照信息增益度的大小进行第二次分类:

Gain(性格)>Gain(性别),因此用“性格”来划分,得到的决策树如下:



7、得到最终的决策树:
    目前只有“父母教育程度”为“中”和“差”的“外向”小学生还没有明确类别,需要用属性“性别”来进一步划分,得到最终的决策树如下:






推荐阅读
author-avatar
dotagod12
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有