赞
踩
作者:張張張張
github地址:https://github.com/zhanghekai
【转载请注明出处,谢谢!】
【机器学习系列】之“西瓜数据集”决策树构建数学公式计算过程
【机器学习系列】之决策树剪枝和连续值、缺失值处理数学公式计算
【机器学习系列】之ID3、C4.5、CART决策树构建代码
项目概述:
\quad 根据以下6个特征,将西瓜分成两类:好瓜和坏瓜
特征:
\quad 1.西瓜的颜色
\quad 2.西瓜的根卷曲程度
\quad 3.敲打西瓜发出的声音
\quad 4.西瓜表面的纹理
\quad 5.西瓜脐部凹陷情况
\quad 6.抚摸西瓜时的触感
开发流程:
\quad 收集数据集:可以使用任何方法.
\quad 准备数据:树构造算法(这里使用ID3算法,因此数值型数据必须离散化。)
\quad 分析数据:可以使用任何方法,构造书完成之后,我们可以将树画出来。
\quad 训练算法:构造树结构。
\quad 测试算法:使用习得的决策树执行分类。
\quad 使用算法:此步骤可以适用于任何监督学习任务,而使用决策树可以更好地理解数据的内在含义。
import math
import operator
import numpy as np
def createDataSet(): # dataSet中最后一列记录的是类别,其余列记录的是特征值 dataSet = [ ['青绿','蜷缩','浊响','清晰','凹陷','硬滑','是'], ['乌黑','蜷缩','沉闷','清晰','凹陷','硬滑','是'], ['乌黑','蜷缩','浊响','清晰','凹陷','硬滑','是'], ['青绿','蜷缩','沉闷','清晰','凹陷','硬滑','是'], ['浅白','蜷缩','浊响','清晰','凹陷','硬滑','是'], ['青绿','稍蜷','浊响','清晰','稍凹','软粘','是'], ['乌黑','稍蜷','浊响','稍糊','稍凹','软粘','是'], ['乌黑','稍蜷','浊响','清晰','稍凹','硬滑','是'], ['乌黑','稍蜷','沉闷','稍糊','稍凹','硬滑','否'], ['青绿','硬挺','清脆','清晰','平坦','软粘','否'], ['浅白','硬挺','清脆','模糊','平坦','硬滑','否'], ['浅白','蜷缩','浊响','模糊','平坦','软粘','否'], ['青绿','稍蜷','浊响','稍糊','凹陷','硬滑','否'], ['浅白','稍蜷','沉闷','稍糊','凹陷','硬滑','否'], ['乌黑','稍蜷','浊响','清晰','稍凹','软粘','否'], ['浅白','蜷缩','浊响','模糊','平坦','硬滑','否'], ['青绿','蜷缩','沉闷','稍糊','稍凹','硬滑','否'] ] # label中记录的是特征的名称 labels = ['色泽','根蒂','敲声','纹理','脐部','触感'] return dataSet, labels
\quad 由于我们输入的数据本身就是离散化数据,所以这一步就省略了。
使用信息增益的方法:
信
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。