重生归来,我要成功 Python 高手--day33 决策树

决策树:是一种树形结构,树中的每一个内部节点代表了一个特征上的判断,每一个分支代表一个判断结果的输出,每一个叶子节点代表了分类结果

1.每一个叶子节点代表了标签

2,中间的结果是特征

建立过程

1.特征的选择:选择有较强分类能力的特征

2.决策树的形成:根据选择的特征形成决策树

3.决策树容易过拟合:采用剪枝的方式缓解过拟合

ID3树:通过信息增益来决定那个特征当节点,信息增益那个大,那个当节点

信息增益=熵-条件熵

:信息论中代表随机变量不确定性的度量

越大:信息不确定性越高,信息越多

越小:信息不确定性越底,信息越少

可以看作不同的信息越多,信息熵越大

信息熵的计算公式

-(当前的概率*log以2 为底当前的概率)---》每个类别求和

例如:α=ABCDEFGH β=AAAABBCD

α的信息熵为 :-1/8*(log2 1/8)=3

β的信息熵为 :-1/2*log2 1/2 + -1/4*log2 1/4 + -1/8*log2 1/8 + -1/8*log2 1/8=1.75

信息增益:

例如:

有一个样本分布为AAABBB 其中α为 AAAB β为 BB

-- 通过标签来计算的

类别的和为:A的熵 -1/2log2(1/2) B的熵 -1/2log2(1/2) 和为1

条件熵:

先计算阿尔法和β对应的条件熵

阿尔法的条件熵为:-3/4*log2(3/4)+(-1/4)*log2(1/4)=0.81

贝塔的条件熵为:-1log2(1)=0

总的条件熵=阿尔法的占比*阿尔法的条件熵+贝塔的占比*贝塔的条件熵=0.54

信息增益为=1-0.54=0.46

某一个特征的条件熵=特征熵

ID3决策树的构建过程

1,计算每个特征的信息增益

2。用信息增益最大的特征将数据集拆分

3.使用这个特征作为一个节点

4.对于剩余的重复2,3布置

C4.5树:信息增益率=信息增益/特征熵 ---->=信息增益*1/特征熵 1/特征熵 类似于惩罚系数

特征多,特征熵大,特征熵大,对应的1/特征熵就越小

特征少,特征熵小,特征熵小,对应的1/特征熵就越大

特征熵=-特征列A分类的占比*log2(A分类的占比)+ -特征列B分类的占比*log2(B分类的占比)....

信息增益率越大,就选这个特征当分裂特征

Cart 决策树:既可以用于回归也可以用于分类,

回归:使用平方误差最小化策略

分类:通过基尼指数最小化策略

基尼值:从数据集D中随机抽取两个样本,其类别标记不一致的概率,所以基尼值越低数据集越纯

基尼指数:选择是划分后的基尼系数最小的属性作为最优属性 分类占比*基尼值

基尼值:每个类别的概率平方和为基尼值

例如:

有十个球都为红球,抽取两个不一样的概率为0

有十个球五个红球,五个蓝球,抽取两个不一样的概率

1-(红球数/总球数)平方-(蓝球数/总球数)平方=0.5

10个球,五个红,三个蓝,两个绿

基尼值为=1-(5/10)平方-(3/10)平方-(2/10)平方=0.62

总结:信息增益和信息增益率越大,说明优先选择这个特征。基尼指数越小,说明优选选择这个特征

决策树的剪枝:树容易过拟合,这是一种正则化方式,提高泛化能力

剪枝:把字数的节点全部删掉,使用叶子节点代替

预剪枝:在决策树生成的过程中,对每个节点在划分前进行评估,如果当前节点的划分不能带来决策树泛化性能提升,则停止划分并当前节点标记为叶子节点

后剪枝:先生成一个完整的决策树,然后自下而上的对非叶子节点进行评估,如果这个节点对应的子树替换成叶子节点能带来决策树的评估就将这个字数替换成叶子节点

相关推荐
金銀銅鐵15 小时前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup1120 小时前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi001 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵1 天前
用 Python 实现 Take-Away 游戏
python·游戏
copyer_xyf1 天前
Agent 流程编排
后端·python·agent
copyer_xyf1 天前
Agent RAG
后端·python·agent
copyer_xyf1 天前
【RAG】向量数据库:milvus
后端·python·agent
copyer_xyf1 天前
Agent 记忆管理
后端·python·agent
星云穿梭2 天前
用Python写一个带图形界面的学生管理系统——完整教程
python