机器学习python实战——第三章决策树

本文介绍了使用Python进行机器学习实战时,如何实现决策树算法。主要内容包括:1)创建决策树,通过主函数creattree,计算熵、划分数据集、选择最优特征和多数决策;2)利用决策树进行分类,根据输入数据和已构建的树进行类别预测;3)使用pickle模块存储和加载决策树模型。

决策树

【1】创造树

主函数:creattree

输入:待学习的数据包括标签以及数据(x and y)

输出:决策树

思路:

首先判断子树的所有实例类别是否完全相同,若是返回类别即可,

其次判断是都是否已无特征可作为分类依据(所以要更新标签),若是返回大多数实例(majority)的类别即可,

选择令信息增量最大的特征,choose包含calcent以及split,遍历每一个特征计算熵。

ps:与基尼指数为依据有区别,信息增量只需要选择特征(多分支)而基尼指数还需要选择最佳特征值进行划分(二叉树)

按照最优的特征对逐个特征值划分(split)数据分支,根据数据分支作为迭代函数(creattree)的输入对象,直至满足条件(前两个if),迭代停止。

代码:

def createtree(dataset,label):
    #类别完全相同则停止继续划分
    classlist=[example[-1] for example in dataset]
    if classlist.count(classlist[0])==len(classlist):
        return classlist[0]#提前结束函数
    #遍历完所有特征时返回出现次数最多的类别
    if len(label)==0:
    #判断空列表的方法
        return majority(classlist)
    #选出最优特征
    bestfeat=choose(dataset)
    bestfeatlabel=label[bestfeat]
    mytree = {bestfeatlabel: {}}
    #更新标签用于创建树
    del label[bestfeat]
    sublabel = label[:]
    #创建特征所有唯一值集合
    value
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值