机器学习-决策树
概念决策树通过对训练样本的学习建立分类规则然后依据分类规则对新样本数据进行分类预测属于有监督学习。核心所有数据从根节点逐步落到叶子节点。决策树主要有三种算法ID3 算法、C4.5 算法、CART 决策树我们首先学习 ID3 算法。衡量标准熵值表示随机变量不确定性的度量或者说是系统内部的混乱程度。熵值计算公式A 集合[1, 1, 1, 1, 1, 1, 1, 1, 2, 2] B 集合[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]A 集合熵值\(-2/10*\log_2(2/10)-8/10*\log_2(8/10) 0.722\)B 集合熵值\(-1/10*\log_2(1/10)*10 3.322\)显然 B 的熵值更大更加混乱。决策树无限制生长时会学习训练集里的噪声和特例对训练数据预测效果极好但对未见过的测试数据预测效果很差。剪枝通过简化树结构来提升模型泛化能力。为了防止过拟合我们通常会对决策树进行剪枝决策树剪枝分为预剪枝与后剪枝我们先学习预剪枝。预剪枝的常见策略包括限制树的深度限制叶子节点的个数以及叶子节点的样本数基尼系数方式核心思想优缺点预剪枝树构建过程中提前停止分裂还没长成完整树训练速度快容易欠拟合后剪枝先生成完整决策树自底向上删除多余分支效果通常更好训练耗时更高代码示例读取 Excel 文件data 取所有信息除了最后一行target 取最后一行为训练做准备datas pd.read_excel(电信客户流失数据2.xlsx) data datas.iloc[:,:-1] target datas.iloc[:,-1]划分训练集和测试集from sklearn.model_selection import train_test_split data_train, data_test, target_train, target_test train_test_split(data, target, test_size0.2, random_state0)对决策树进行预剪枝criterion 为分裂标准max_depth 为最大深度min_samples_leaf 为叶节点最少样本数并进行训练from sklearn import tree dtr tree.DecisionTreeClassifier( criteriongini, max_depth15, min_samples_leaf5, random_state0 ) dtr.fit(data_train, target_train)以下是训练集和测试集的评估报告train_predicted dtr.predict(data_train) from sklearn import metrics print(metrics.classification_report(target_train, train_predicted)) cm_plot(target_train, train_predicted).show()test_predicted dtr.predict(data_test) from sklearn import metrics print(metrics.classification_report(target_test, test_predicted)) cm_plot(target_test, test_predicted).show() dtr.score(data_test, target_test)import matplotlib.pyplot as plt from sklearn.tree import plot_tree fig, ax plt.subplots(figsize(32, 32)) plot_tree(dtr, filledTrue, axax) plt.show()输出为precision recall f1-score support 0 0.91 0.93 0.92 357 1 0.78 0.74 0.76 123 accuracy 0.88 480 macro avg 0.85 0.83 0.84 480 weighted avg 0.88 0.88 0.88 480 precision recall f1-score support 0 0.90 0.81 0.85 89 1 0.57 0.74 0.65 31 accuracy 0.79 120 macro avg 0.74 0.78 0.75 120 weighted avg 0.82 0.79 0.80 120决策树回归import pandas as pd from sklearn import tree datas pd.read_csv(r多元回归.csv, encodinggbk) datad_X datas[[体重, 年龄]] data_y datas[血压收缩] dtr tree.DecisionTreeRegressor(random_state0) # 与决策树分类不同在这里 dtr.fit(datad_X, data_y) score dtr.score(datad_X, data_y) print(data_y) print(score)输出为0 120 1 141 2 124 3 126 4 117 5 125 6 123 7 125 8 132 9 123 10 132 11 155 12 147 Name: 血压收缩, dtype: int64 1.0

相关新闻

从零部署Web应用:粉丝空间站项目实战与通用技术验证框架

从零部署Web应用:粉丝空间站项目实战与通用技术验证框架

这次我们来看一个名为“粉丝空间站”的项目。从名称和有限的材料来看,这很可能是一个面向内容创作者或社群运营者的工具,旨在帮助管理粉丝、增强互动或提供专属内容空间。对于技术博主、UP主或社群管理者而言,一个能稳定运行、支持自定义、且…

2026/11/12 4:46:02 阅读更多 →
Java缓存性能对比:Caffeine与Guava Cache的严谨基准测试方法论

Java缓存性能对比:Caffeine与Guava Cache的严谨基准测试方法论

在实际项目开发中,我们经常需要对不同方案、不同版本或不同数据集进行对比分析,以评估性能、成本、效果或稳定性。这种“论惨对比”——即深入、细致且有时甚至有些“残酷”地揭示差异的对比——是技术决策和问题排查的核心环节。然而,很多开…

2026/11/14 20:46:34 阅读更多 →
Deepseek性价比之王背后的极致压缩技术MLA原理解析_MOE混合专家模型---AI大模型系统从零开始0047

Deepseek性价比之王背后的极致压缩技术MLA原理解析_MOE混合专家模型---AI大模型系统从零开始0047

DeepSeek-V3 是一款混合专家大模型(MoE): 参数规模 总共有 671 亿参数,但它不是全部同时干活。每处理一段文字(令牌),只激活 37 亿参数参与计算。 好处:推理时算力开销远小于同等总参数的稠密大模型,跑起来更省钱、更快。 核心技术底子 沿用在 DeepSeek-V2 验证成功的…

2026/11/14 17:31:38 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/15 5:13:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/15 5:13:35 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/15 5:13:35 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/15 3:37:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/15 4:18:38 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/15 5:13:35 阅读更多 →

日新闻

周新闻

月新闻