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

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

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

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

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

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

2026/9/29 14:26:59 阅读更多 →

最新新闻

Embabel框架:从LLM手中拿回Agent决策权的工程实践

Embabel框架:从LLM手中拿回Agent决策权的工程实践

1. 为什么要把决策权从LLM手里拿回来第一次接触Embabel这个框架的时候,我脑子里冒出来的第一个疑问就是:现在大家都在拼命把决策权往LLM手里塞,恨不得让模型自己规划、自己调工具、自己反思,怎么还有人反着来,专门做一…

2026/10/13 13:20:53 阅读更多 →
基于Hadoop的酒店推荐系统:从协同过滤到MapReduce工程实践

基于Hadoop的酒店推荐系统:从协同过滤到MapReduce工程实践

做了多年 Java 后端,也带过不少同学做毕业设计,看到“基于 Hadoop 技术的酒店推荐系统”这种题目,我第一反应是:这题出得挺聪明。它不只是让写一个酒店预订管理系统,而是把常规的增删改查、前端交互和大数据离线计算绑…

2026/10/13 13:20:53 阅读更多 →
内核网络设备状态深度拆解:从ip link到ethtool的排障指南

内核网络设备状态深度拆解:从ip link到ethtool的排障指南

刚接手一套线上系统的那段时间,一半以上的疑难网络故障,最后都落在三个字上面:看状态。确切地说,是看内核网络设备状态。 这里的“状态”不是 ping 通不通、网页能不能打开那么简单。在 Linux 网络栈里,一张网卡从物…

2026/10/13 13:20:53 阅读更多 →
ECS容器服务智能诊断:28项核心功能与故障排查实战

ECS容器服务智能诊断:28项核心功能与故障排查实战

你有没有在凌晨一点半经历过这样一幕:一条告警把手机吵醒,发布单上写着"服务回归正常",但控制台里同一批任务正在反复 CrashLoopBackOff,新起的容器刚 Ready 三秒钟就又被调度器杀掉。你第一反应是拉日志,结…

2026/10/13 13:20:53 阅读更多 →
Win10+VS2019编译Qt 5.15.16:环境配置与避坑实战

Win10+VS2019编译Qt 5.15.16:环境配置与避坑实战

简介:QT 5.15.16编译包基于Windows 10与Visual Studio 2019环境构建,面向需要开发跨平台GUI应用的C工程师,可同时产出32位与64位架构支持。整个压缩包共2000个文件,体积约753.36MB,其中包含1548个C头文件,覆…

2026/10/13 13:20:53 阅读更多 →
Vue生态实战总结:天气获取、mpvue小程序、Koa服务与图片标注

Vue生态实战总结:天气获取、mpvue小程序、Koa服务与图片标注

不知道大家有没有这种经历:一个功能单拎出来感觉都见过,但真到自己动手做的时候,总会被各种边角问题磨掉大半天的耐心。前阵子我们软件组内部做了一轮前端集中练习,几个人分别领了不同的任务,最后汇总到一起&#xff0…

2026/10/13 13:19:52 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →