机器学习-决策树
概念决策树通过对训练样本的学习建立分类规则然后依据分类规则对新样本数据进行分类预测属于有监督学习。核心所有数据从根节点逐步落到叶子节点。决策树主要有三种算法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/9/22 4:43:50 阅读更多 →
Java缓存性能对比:Caffeine与Guava Cache的严谨基准测试方法论

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

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

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

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

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

2026/9/15 11:54:35 阅读更多 →

最新新闻

3步搞定CAD查看器:新手避坑指南与完整代码实战

3步搞定CAD查看器:新手避坑指南与完整代码实战

3步搞定CAD查看器:新手避坑指南与完整代码实战 满屏红色的报错堆栈(StackTrace)像天书一样砸在脸上,你甚至不知道哪一行代码导致了程序崩溃。做房建工程的后端开发,最怕的就是这种“黑盒”状态,明明只是想要个简单的 CAD 查看器…

2026/9/22 4:44:05 阅读更多 →
3个真实案例:搞懂智慧的拼音,这份避坑指南让你少踩90%的坑

3个真实案例:搞懂智慧的拼音,这份避坑指南让你少踩90%的坑

3个真实案例:搞懂智慧的拼音,这份避坑指南让你少踩90%的坑 版本升级后 API 全变了,昨天还能跑的代码今天直接报错,这种崩溃感每个写过代码的人都懂。特别是处理中文拼音这类边缘场景时,库的版本差异能让你的项目直接停摆。今天这篇避坑指南,专…

2026/9/22 4:44:05 阅读更多 →
84888.com实战:从报错到精通,后端开发避坑指南

84888.com实战:从报错到精通,后端开发避坑指南

84888.com实战:从报错到精通,后端开发避坑指南 面对满屏的红色 StackTrace,你第一反应是复制粘贴去搜吗?别急,90%的新手都在这里栽了跟头。报错信息看不懂,代码逻辑理不清,这才是阻碍你从入门到精通的真正门槛。…

2026/9/22 4:44:05 阅读更多 →
英语交流实战项目避坑指南:搞定环境配置不卡壳

英语交流实战项目避坑指南:搞定环境配置不卡壳

英语交流实战项目避坑指南:搞定环境配置不卡壳 刚接手一个跨境电商的后台系统,核心需求就是让客服团队能和海外客户进行 英语交流 。 配置环境就卡半天 ,这种痛谁懂? 我盯着终端报错信息看了二十分钟,最后发现是 Node.js…

2026/9/22 4:44:04 阅读更多 →
告别Pyplot报错:数据可视化选型最佳实践与避坑指南

告别Pyplot报错:数据可视化选型最佳实践与避坑指南

告别Pyplot报错:数据可视化选型最佳实践与避坑指南 屏幕上一片红,满屏的 Traceback 堆叠,看着 ValueError 和 TypeError…

2026/9/22 4:44:04 阅读更多 →
向日葵小班证书年审总挂?一文搞懂房建工程师避坑指南

向日葵小班证书年审总挂?一文搞懂房建工程师避坑指南

向日葵小班证书年审总挂?一文搞懂房建工程师避坑指南 官方文档翻了三遍还是没看懂?别急,我懂你的痛。 在房建工程圈子里混了十年,最让人头大的往往不是图纸画错,而是那些看似简单实则处处是坑的行政流程。特别是涉及到【向日葵小班】这类特定资质或项目…

2026/9/22 4:43:04 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/22 4:32:41 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/22 4:38:57 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/22 2:43:42 阅读更多 →