决策树学习笔记

前言

本文内容参考了周志华老师的《机器学习》,《机器学习实战》,和李航老师的《统计学习方法》

决策树简介

决策树是一种很常见的机器学习方法

例如判断一个西瓜是好瓜还是坏瓜?
在这里插入图片描述

决策树代码实现(python)

下面我们来看如何用代码来实现

首先我们先来编写计算香农熵的代码

from math import log

def calc_shannong_ent(data_set):
	//计算一共有多少条数据
    data_size = len(data_set)
    //统计所有的结果
    data_labels=[example[-1] for example in data_set]
    labels_num ={}
    for i in data_labels:
        labels_num[i] = labels_num.get(i, 0) + 1
    shannong_ent = 0
   //计算香农熵
    for key in labels_num:
        prob = labels_num[key] / data_size
        shannong_ent = shannong_ent - prob * log(prob, 2)
    return shannong_ent

我们验证这个函数

print(calc_shannong_ent([[1,1,"yes"],[1,1,"yes"],[1,0,"no"],[0,1,"no"],[0,1,'no']]))

输出结果为

0.970950594454668

然后编写划分数据集的代码

def splite(data_set, axis, value):
    rem_data_set=[]
    for line_data in data_set:
        if line_data[axis] == value:
            data = line_data[:axis]
            data.extend(line_data[axis+1:])
            rem_data_set.append(data)
    return rem_data_set

划分选择

减值处理

连续缺失值处理

多变量决策树

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值