机器学习——决策树(笔记)

server/2024/12/22 13:40:39/

目录

一、认识>决策

1. 介绍

2. >决策生成过程

二、sklearn中的>决策

1. tree.DecisionTreeClassifier(分类

(1)模型基本参数

(2)模型属性

(3)接口

2. tree.DecisionTreeRegressor(回归

3. tree.export_graphviz(将生成的>决策导出为DOT格式,画图专用)

4. 其他(补充)

三、>决策的优缺点

1. 优点

2. 缺点


一、认识>决策

1. 介绍

        >决策(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列 有特征和标签的数据中总结出决策规则,并用状图的结构来呈现这些规则,以解决分类和回归问题。>决策算法容易理解,适用各种数据,在解决各种问题时都有良好表现,尤其是以模型为核心的各种集成算法,在各个行业和领域都有广泛的应用。

2. >决策生成过程

        上面这组数据集为 一系列已知物种以及所属类别的数据。我们现在的目标是,将动物们分为哺乳类和非哺乳类。根据已经收集到的数据,>决策算法 可以算出了下面的 这棵>决策

        假如我们现在发现了一种 新物种 A,它是冷血动物,体表带鳞片,并且不是胎生,我们就可以通过这棵>决策来判断它的 所属类别

涉及关键概念:节点

   ① 根节点:没有进边,有出边。包含最初的,针对特征的提问。

   ② 中间节点:既有进边也有出边,进边只有一条,出边可以有很多条。都是针对特征的提问。

   ③ 叶子节点:有进边,没有出边,每个叶子节点都是一个类别标签。

   ④ 子节点和父节点:在两个相连的节点中,更接近根节点的是父节点,另一个是子节点。

二、sklearn中的>决策

        涉及模块:sklearn.tree

1. tree.DecisionTreeClassifier(分类

(1)模型基本参数

(2)模型属性

(3)接口

2. tree.DecisionTreeRegressor(回归

重要参数criterion

        回归 衡量分枝质量的 指标,支持的标准有三种:

    ① 输入“mse”使用均方误差mean squared error(MSE),父节点和叶子节点之间的 均方误差的差额 将被用来作为 特征选择的标准,这种方法通过使用 叶子节点的均值来 最小化 L2损失。

     ② 输入“friedman_mse”,使用费尔德曼均方误差,这种指标使用弗里德曼针对潜在分枝中的问题改进后的均方误差。

     ③ 输入“mae”使用绝对平均误差MAE (mean absolute error),这种指标使用叶节点的中值来 最小化 L1损失。

3. tree.export_graphviz(将生成的>决策导出为DOT格式,画图专用)

4. 其他(补充)

        ① 信息熵的计算比基尼系数缓慢一些,因为基尼系数的计算不涉及对数。另外,因为信息熵对不纯度更加敏感,所以信息熵作为指标时,>决策的生长会更加“精细”,因此对于高维数据或者噪音很多的数据,信息熵很容易过拟合,基尼系数在这种情况下效果往往比较好。

        ② random_state用来设置分枝中的随机模式的参数,默认None,在高维度时随机性会表现更明显,低维度的数据(比如鸢尾花数据集),随机性几乎不会显现。输入任意整数,会一直长出同一棵,让模型稳定下来。

        ③ splitter也是用来控制>决策中的随机选项的,有两种输入值,输入“best”,>决策在分枝时虽然随机,但是还是会优先选择更重要的特征进行分枝(重要性可以通过属性feature_importances_查看),输入“random”,>决策在分枝时会更加随机会因为含有更多的不必要信息而更深更大,并因这些不必要信息而降低对训练集的拟合。

        ④ 在不加限制的情况下,一棵>决策会生长到衡量不纯度的指标最优,或者没有更多的特征可用为止,这样的>决策往往会过拟合。为了让>决策有更好的泛化性,需要要对>决策进行剪枝。剪枝策略对>决策的影响巨大,正确的剪枝策略是优化>决策算法的核心

三、>决策的优缺点

1. 优点

    ① 易于 理解和解释,因为木可以画出来被看见。

    ② 需要 很少的 数据准备。其他很多算法 通常都需要 数据规范化,需要 创建虚拟变量并删除空值 等。但 sklearn中的>决策模块 不支持对缺失值的处理

    ③ 使用 的成本(比如说,在预测数据的时候)是用于 训练的数据点的 数量的 对数,相比于 其他算法,这是一个 很低的成本。

    ④ 能够同时 处理数字 和 分类 数据,既可以做 回归又可以 做分类。其他技术通常专门用于分析仅具有 一种变量类型的 数据集。

    ⑤ 能够处理 多输出问题,即含有 多个标签的问题(注意与一个标签中含有多种标签分类的问题区别开)

    ⑥ 是一个 白盒模型,结果很容易 能够被解释。如果 在模型中可以观察 到给定的情况,则可以通过布尔逻辑 轻松解释 条件。相反,在 黑盒模型中(例如,在人工神经网络中),结果可能更难以解释。

    ⑦ 可以 使用统计测试验证 模型,这让 我们可以 考虑模型的 可靠性。即使 其假设 在某种程度上 违反了生成数据的 真实模型,也能够表现良好。

2. 缺点

    ① >决策学习者 可能创建 过于复杂的,这些 不能很好地 推广数据。这称为过度拟合。修剪,设置叶节点所需的最小样本数或设置的最大深度等机制是 避免此问题所必需的。

    ② >决策 可能不稳定,数据中 微小的变化 可能导致 生成完全 不同的,这个问题需要通过 集成算法来解 决。

    ③ >决策的 学习是 基于贪婪算法,它靠 优化局部最优(每个节点的最优)来 试图达到整体的最优,但这种 做法 不能保证返回 全局最优>决策。这个问题 也可以 由集成算法 来解决,在随机森林中,特征和样本会 在分枝过程中 被随机采样。

    ④ 有些概念 很难学习,因为>决策 不容易表达它们,例如 XOR,奇偶校验 或多路复用器问题。

    ⑤ 如果标签中的 某些类占 主导地位,>决策学习者 会创建偏向 主导类的。因此,建议在 拟合>决策 之前 平衡数据集


http://www.ppmy.cn/server/61105.html

相关文章

初始网络知识

前言👀~ 上一章我们介绍了使用java代码操作文件,今天我们来聊聊网络的一些基础知识点,以便后续更深入的了解网络 网络 局域网(LAN) 广域网(WAN) 路由器 交换机 网络通信基础 IP地址 端…

RabbitMQ 实现简易即时通讯

设计思路 利用消息队列的特性进行消息投递,假设客户端 A 要与客户端 B 进行通信。 客户端 A :创建队列 A-B ,发送的消息推送到 A-B 队列, 绑定 B-A 队列,接收 B-A 队列推送给客户端的消息。 客户端 B :创建…

CSS 【详解】CSS 函数(含 calc,min,max,clamp,cubic-bezier,env,steps 等)

函数描述CSS 版本attr()返回选择元素的属性值。2calc()允许计算 CSS 的属性值,比如动态计算长度值。3cubic-bezier()定义了一个贝塞尔曲线(Cubic Bezier)。3hsl()使用色相、饱和度、亮度来定义颜色。3hsla()使用色相、饱和度、亮度、透明度来定义颜色。3linear-grad…

[PaddlePaddle飞桨] PaddleOCR-光学字符识别-小模型部署

PaddleOCR的GitHub项目地址 推荐环境: PaddlePaddle > 2.1.2 Python > 3.7 CUDA > 10.1 CUDNN > 7.6pip下载指令: python -m pip install paddlepaddle-gpu2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install paddleocr2.7…

大模型/NLP/算法面试题总结7——LLaMA和别的模型架构有什么区别

LLaMA(Large Language Model Meta AI)与其他模型架构的区别主要体现在其设计思想、技术细节和应用场景上。 以下是对LLaMA模型架构特点的详细分析,以及与其他模型架构的对比: 一、设计思想 LLaMA: 强调在给定计算预…

Android知识收集

文章列表 Android 高版本 HTTPS 抓包解决方案!链接关于RecyclerView你知道的不知道的都在这了 链接 工具列表 抓包工具-Reqable下载. 链接阿里云云效Maven 链接Android各尺寸图标生成 链接App Icon Generator,图标生成支持android, ios 链…

全方位指南,电子期刊制作入门到精通

在这个数字化时代,电子期刊作为一种新兴的媒体形式,以其方便快捷、互动性强、传播范围广等特点,受到越来越多人的青睐。那么,如何制作出一本既专业又有吸引力的电子期刊呢? 一、选择合适的制作软件 首先,选…

2024年7月9日~2024年7月15日周报

目录 一、前言 二、完成情况 2.1 特征图保存方法 2.1.1 定义网络模型 2.1.2 定义保存特征图的钩子函数 2.1.3 为模型层注册钩子 2.1.4 运行模型并检查特征图 2.2 实验情况 三、下周计划 一、前言 本周的7月11日~7月14日参加了机器培训的学习讨论会,对很多概…