决策树模型学习笔记

1、概述

在这里插入图片描述

ps:分类问题可以根据熵值分类,回归问题可以根据每个节点的方差看拟合程度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、熵

越混乱,熵值越大;越稳定,熵值越小。

课件:
在这里插入图片描述
在这里插入图片描述

ps:
公式中pi表示不同类别出现的概率,比如:
A={1,1,1,1}
pi(1)=100%
B={1,2,2,1}
pi(1)=50%, pi(2)=50%
而当pi=1时,logpi=0,熵值最小,画图也可知,不确定性越大,pi值月小,熵值离0越远

在这里插入图片描述

3、例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、决策树算法

在这里插入图片描述

ID3:不适合解决每个样本都有特定标识符(如ID)的问题,因为当ID当作特征时,特征足够分散,熵值为0,可以作为根节点,但是ID无法作为分类标准
CART:采用基尼系数进行运算的决策树也称为CART决策树基尼系数(gini)用于计算一个系统中的失序现象,即系统的混乱程度(纯度)。基尼系数越高,系统的混乱程度就越高(不纯),建立决策树模型的目的就是降低系统的混乱程度(体高纯度),从而得到合适的数据分类效果。
CART的具体理解

5、决策树应对连续值问题

在这里插入图片描述

6、遇到决策树模型过拟合的情况

决策树把每个叶子节点都分为一类,熵值为0,此时分类相当于无效了

在这里插入图片描述
在这里插入图片描述

后剪枝公式个人理解:C(T)表示树节点分叉的损失成本(gini系数),alpha为系数,T表示后继节点样本个数(samples)

7、具体代码实现

7.1 分类决策树特征

数据集:
在这里插入图片描述

# 1.数据读取与预处理
import pandas as pd
df = pd.read_excel('员工离职预测模型.xlsx')
df = df.replace({'工资':{'低':0,'中':1,'高':2}})
 
# 2.提取特征变量与目标变量
X = df.drop(columns=['离职'])
y = df['离职']
 
# 3.划分训练集与测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=123)
 
# 4.模型训练与拟合
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier(max_depth=3,random_state=123)
model.fit(X_train,y_train)

7.2 回归决策树模型


from sklearn.tree import DecisionTreeRegressor
X = [[1,2],[3,4],[5,6],[7,8],[9,10]]
y = [1,2,3,4,5]
model = DecisionTreeRegressor(max_depth=2,random_state=0)
model.fit(X,y)
model.predict([[9,9]])

7.3 一些参数

  • random_state:当数据量较大或特征变量较多,可能在某个节点划分时,会遇到两个特征变量的信息增益或基尼系数下降值相同的情况,此时决策树模型默认会从中随机选择一个特征变量进行划分,这样可能会导致每次运行程序后生成的决策树不一致。设置random_state参数(如设置为123)可以保证每次运行程序后各节点的分裂结果都是一致的,这在特征变量较多、树的深度较深时较为重要。
  • criterion:特征选择标准,取值为’entropy’(信息熵)和’gini’(基尼系数),默认值为’gini’。
  • max_depth:决策树最大深度,取值为int型数据或None,默认值为None。一般数据或特征较少时可以不设置,如果数据或特征较多,可以设置最大深度进行限制。

参考

决策树模型及案例(Python)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值