机器学习算法/模型——决策树(1)基本理论和代码实例

决策树模型及案例(Python) 目录 1 决策树模型简介 2 Gini系数(CART决策树) 3信息熵、信息增益 4决策树模型代码实现 4.1分类决策树模型(DecisionTreeClassifier) 4.2回归决策树模型(DecisionTreeRegressor) 5案例:员工离职预测模型 5.1模型搭建 5.1.1数据读取与预处理 5.1.2提取特征变量和目标变量 5.1.3划分训练集与测试集 5.1.4模型搭建及训练 5.1.5代码汇总 5.2模型预测及评估 5.2.1直... 阅读详情


一棵决策树(Decision Tree)是一个树结构(可以是二叉树或非二叉树),每个非叶节点对应一个特征,该节点的每个分支代表这个特征的一个取值,而每个叶节点存放一个类别或一个回归函数。

决策树树模型由一组 if-then-else 规则构成。
决策树的构造算法被称为递归分区法。

1. 本质和概述

1.1 本质

核心:一组嵌套的判定规则

决策树算法是,通过决定性特征学习数据集中的规则,对未知数据集进行划分的算法;其中叶子节点为决策(分类)结果,非叶子节点为选择进行划分的特征(决定性特征、最优特征)。
在这里插入图片描述

1.2 概念/术语

  • 拆分值
    一个预测变量值,它将一组记录分为两部分,使得一部分中的预测变量小于拆分 值,而另一部分中的预测变量大于拆分值。

  • 节点
    节点是拆分值的图形化表示(或规则表示)。

  • 非叶子节点(含根节点) = 决策节点 = 特征 = 条件判断

  • 叶子节点 = 分类/决策结果
    一组 if-then 规则的终点,或一个树分支的终点

  • 损失
    在拆分过程的某一阶段中误分类的个数。损失越大,不纯度越高。

  • 不纯度 = 熵= 不确定性 = 异质性
    不纯度:表示在数据的一个细分中发现多个类混杂的程度。细分中混杂的类越多,该细分的不纯度就越高(种类越少纯度越高)
    熵:是信息论中描述事件结果的不确定性的指标。
    熵是纯度的对立面,跟不纯度表达的是同一个意思。(熵 = 不确定性 = 不纯度 )

  • 递归拆分
    反复对数据进行划分和细分,目的是使每个最终细分内的结果尽可能同质。
    每个递归构建的新的分裂点(节点)都会不断地降低不纯度(熵),最终在叶子节点上,不纯度降为0

  • 剪枝
    为了降低过拟合,对一棵完全长成树逐步剪枝的过程。

分裂点阈值的确定

决策树本质就是想在每个特征上找一个阈值,根据这些阈值来对数据分类。这个阈值是通过遍历来找到的。

2. 常用算法:分裂点选择依据

决策树的构造过程是一个迭代的过程。每次迭代中,采用不同特征作为分裂点,来将样本数据划分成不同的类别。被用作分裂点的特征叫做分裂特征。

选择分裂特征的目标,是让各个分裂子集尽可能地“纯”,即尽量让一个分裂子集中的样本都属于同一类别。(种类越少纯度越高——越往下纯度越高)

如何选择分裂特征的使用先后顺序?
如何使得各个分裂子集“纯?

经典算法大致有 ID3、C4.5 和 CART,其中用到的关键指标分别是:信息增益、信息增益率和基尼系数。

注:基尼系数和熵是类似的概念,只不过量化的公式不同。

2.0 信息熵

信息熵在机器学习中也叫做经验熵,因为熵的计算是依据样本数据而来。

  • 信息量
    信息的大小跟随机事件的概率有关。
    越小概率的事情发生了产生的信息量越大;
    越大概率的事情发生了产生的信息量越小
  • 不纯度/复杂度
    信息熵还可以作为一个系统复杂程度的度量。
    如果系统越复杂,出现不同情况的种类越多,那么他的信息熵是比较大的。
    如果一个系统越简单,出现情况种类很少(极端情况为1种情况,那么对应概率为1,那么对应的信息熵为0),此时的信息熵较小。
  • 信息熵

当前样本集合 Y 的信息熵的定义式为:
在这里插入图片描述
其中,i=1,2,…k 为当前样本集合 Y的 k 个可能结果;pi 为集合 Y 中第 k 类样本所占的比例。

当样本只属于某一类时熵最小,当样本均匀的分布于所有类中时熵最大。因此,如果能找到一个分裂让熵最小,这就是我们想要的最佳分裂。

【大白话理解】
Y 在机器学习中可以表示不同的属性值也可以表示不同的标签值;
整个式子是集合中所有种类的熵(信息量)之总和;
属性或者标签有几个 类别(n) 就有几个熵的和;


问:如何理解熵 ?或者说 熵的公式的来源是什么?

答:可以看成 sum( p * log( 1 p \frac{1}{p} p1​) ) 更好理解,其中 p 代表事件发生的概率 ,log( 1 p \frac{1}{p} p1​) 表示该事件的储存空间!例如:

一个随机变量有8种可能,相当于8个事件,如果是0和1表示,一共需要 log2(8)=3 bit

换句话说,如果一个事件的概率是1/8,需要 log2(8)=3 bit

再换句话说,如果一个事件的概率是p,需要 log2( 1 p \frac{1}{p} p1​) bit

再泛化,概率是变量,就是 log2( 1 p ( x ) \frac{1}{p(x)} p(x)1​)

再泛化,2是变量,就是 log( 1 p ( x ) \frac{1}{p(x)} p(x)1​)

那么,既然表示其中一个事件需要这么多字节,那么表示所有事件平均需要多少bit呢?很自然就是求期望:

sum( p(x) log( 1 p ( x ) \frac{1}{p(x)} p(x)1​ )

把倒数变成负号:

-sum( p(x) logp(x) )


注:对数以 2 为底时熵的单位称作比特(bit);以e(自然对数)为底时被称为纳特(nat)。

  • 例子
    在这里插入图片描述

可以看出,熵越大的事件不确定性也越大,这也和我们的直觉相同:两方差距不大,结果的不确定性就很大。

  • 条件熵
    Y 的不确定性受到 X 条件的影响,此时就需要计算在有 X 影响时 Y 的熵是多少。我们称之为条件熵。
    在这里插入图片描述
    条件熵描述的是增加了某个条件后,事件的熵是多少。直观上说,增加了某个条件会让事情的不确定性降低(最不济也是不变)。(通常,这个不确定性降低的程度叫做信息增益。)

【大白话解释】每种属性值的概率 ✖️ 该种属性值的情况下标签值的信息熵。
(条件熵的本质跟条件概率是一回事)

2.1 ID3

核心:以信息增益为度量,选择分裂后信息增益最大的特征进行分裂。

  • 信息增益
    不确定性降低的程度叫做信息增益,定义式为:
    在这里插入图片描述
    熵减少则意味着纯度增高(类别减少;信息增益即前后两次熵的差。

    信息增益 = 划分前熵 - 划分后熵

注:
ID3仅仅适用于二分类问题。
ID3仅仅能够处理离散属性。

信息增益
缺点:信息增益偏向取值较多的特征
原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较偏向取值较多的特征。

2.2 C4.5

C4.5 选用信息增益比(Gain Ratio)——用衡量不确定性降低的百分比而不是单纯的量——作为选择分支的标准。

  • 信息增益率

在这里插入图片描述
信息增益比 = 惩罚参数 * 信息增益
注意:其中的HA(D),对于样本集合D,将当前特征A作为随机变量(取值是特征A的各个特征值),求得的经验熵。

信息增益比本质: 是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。

在这里插入图片描述

信息增益比
缺点:信息增益比偏向取值较少的特征
原因:当特征取值较少时HA(D)的值较小,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。

2.3 分类与回归树(CART )

CART (Classification and Regression Tree),分类和回归树,不仅可以用来做分类,还可以用来做回归。

CART 算法的运行过程和 ID3 及 C4.5 大致相同,不同之处在于:

  1. CART 的特征选取依据不是增益量或者增益率,而是 Gini 系数(Gini Coefficient)。每次选择 Gini 系数最小的特征作为最优切分点;
  2. CART 是一棵严格二叉树。每次分裂只做二分。
  • 基尼指数
    Gini指数表示在样本集合中一个随机选中的样本被分错的概率。
    Gini指数表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。这一点和熵类似。

    在这里插入图片描述

  • 样本集合D的Gini指数 : 假设集合中有K个类别,则:
    在这里插入图片描述
    基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率

  • 基于特征A划分样本集合D之后的基尼指数

    在这里插入图片描述

2.4 对比

  • 信息增益会倾向于取值较多的特征(因为取值越多意味着确定性越高,前后的信息熵差值就会更大)
  • 信息增益比就是对信息增益的一个改进,一定程度上对取值比较多的特征进行惩罚,避免ID3出现过拟合的情况,提升决策树的泛化能力
  • ID3 只能处理离散型变量,而 C4.5 和 CART 都可以处理连续型变量。
    C4.5处理连续型变量时,通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续型变量转换多个取值区间的离散型变量。而对于CART,由于其构建时每次都会对特征进行二值划分,因此可以很好地适用于连续性变量。
  • ID3 和 C4.5 只能处理分类问题,而CART(Classification and Regression Tree,分类回归树)从名字就可以看出其不仅可以用于分类,也可以应用于回归任务(回归树使用最小平方误差准则)
  • …

3. 决策树优化:剪枝

决策树算法很容易过拟合(overfitting),剪枝算法就是用来防止决策树过拟合,提高泛华性能的方法。
剪枝分为预剪枝与后剪枝。

3.1 剪枝原因(问题)

  • 控制叶子节点数
    防止叶子节点过多,叶子节点含有的样本数过少而导致泛化能力很差的情况。
  • 控制树的高度
    决策树本质上是 if-else的多层嵌套, 层数多代表 if 就非常多,这样就需要苛刻的条件才能满足这个很深的叶子节点(即这个类别),言外之意,它缺少必要的泛化能力,测试集的数据有可能不会走到这里。

为了解决以上通过训练构建出的决策树的深度过大,叶子节点过多,叶子节点含有的样本数过少的问题(实际上就是一棵树多余的树枝),就需要想办法剪去这些树枝,从而得到一棵不高不胖的决策树。

3.2 剪枝方法

剪枝是优化决策树的常用手段。剪枝方法大致可以分为两类:

  1. 预剪枝(局部剪枝):在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造;
  2. 后剪枝(全局剪枝):先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。

4. 代码

4.1 例子1

  • 数据准备
from sklearn.datasets import make_blobs 

X, y = make_blobs(n_samples=300, centers=4,
                 random_state=0, cluster_std=1.0)

plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='rainbow')

在这里插入图片描述

  • 简单的决策树
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier().fit(X, y)
  • 可视化
# 快速写一个辅助函数,对分类器的结果进行可视化:
def visualize_classifier(model, X, y, ax=None, cmap='rainbow'):
    ax = ax or plt.gca()
    
    # Plot the training points
    ax.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=cmap,
               clim=(y.min(), y.max()), zorder=3)
    ax.axis('tight')
    ax.axis('off')
    xlim = ax.get_xlim()
    ylim = ax.get_ylim()
    
    # fit the estimator
    model.fit(X, y)
    xx, yy = np.meshgrid(np.linspace(*xlim, num=200),
                         np.linspace(*ylim, num=200))
    Z = model.predict(np.c_[xx.ravel(), yy.ravel()]).reshape(xx.shape)

    # Create a color plot with the results
    n_classes = len(np.unique(y))
    contours = ax.contourf(xx, yy, Z, alpha=0.3,
                           levels=np.arange(n_classes + 1) - 0.5,
                           cmap=cmap, clim=(y.min(), y.max()),
                           zorder=1)

    ax.set(xlim=xlim, ylim=ylim)
visualize_classifier(DecisionTreeClassifier(), X, y)

在这里插入图片描述

  • 分步查看

第一步:
在这里插入图片描述
1 到 4 步(完整过程):
在这里插入图片描述

通过观察第一张的最终效果,可以知道,这棵决策树刚刚分到第 5 层数据就出现了过拟合。

这种过拟合其实正是决策树的一般属性——决策树非常容易陷得很深,因此往往会拟合局部数据,而没有对整个数据分布的大局观。
这也是为什么要控制树的深度的原因。

通过组合多个过拟合评估器来降低过拟合程度的想法其实是一种集成学习方法,称为装袋算法。装袋算法使用并行评估器对数据进行有放回抽取集成(也可以说是大杂烩),每个评估器都对数据过拟合,通过求均值可以获得更好的分类结果。随机决策树的集成算法就是随机森林。

4.2 例子2

  • 模块导入
import numpy as np 
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

from sklearn.datasets import make_blobs
from sklearn.tree import DecisionTreeClassifier
  • 数据准备
X, y = make_blobs(n_samples=500, n_features=2,
                   centers=5, cluster_std= 0.5, random_state=0)

plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis', s=10)

在这里插入图片描述

  • 模型拟合
dt_model = DecisionTreeClassifier()
dt_model.fit(X, y)
  • 新数据
X_new = [-4, -4] + [16, 14] * np.random.rand(10000, 2)

plt.scatter(X_new[:, 0], X_new[:, 1])

在这里插入图片描述

  • 可视化结果
y_pred = dt_model.predict(X_new)

plt.scatter(X[:, 0], X[:, 1], c=y, cmap='viridis', s=10)
plt.scatter(X_new[:, 0], X_new[:, 1], 
            c=y_pred, cmap='viridis', s=1, alpha=0.5)

在这里插入图片描述
特意把新数据的生成数量提升了一个量级,就是为了更清晰地看到决策边界!

5. 总结

核心问题:如何选择分裂特征,才能使得能够更快的降低数据分类的熵/不纯度。(树越深本身就可以不断降低不纯度,我们需要做的是如何加快这个速度而且不过拟合)

参考

  1. 机器学习必备的数学知识
  2. 为什么信息熵要定义成-Σp*log§?
  3. 【直观详解】信息熵、交叉熵和相对熵
  4. 决策树–信息增益,信息增益比,Geni指数的理解
  5. 《python数据科学手册》
  6. 机器学习:谈谈决策树
  7. 一句话+一张图说清楚决策树算法
浅谈决策树算法以及matlab实现ID3算法 决策树方法在分类、预测、规则提取等领域有着广泛的应用。在20世纪70年代后期和80年代初期,机器学习研究者J.Ross Quinilan提出了ID3算法以后,决策树在机器学习、数据挖掘领域得到极大的发展。Quinilan后来又提出了C4.5,成为新的监督学习算法。1984年几位统计学家提出了CART分类算法。ID3和ART算法大约同时被提出,但都是采用类似的方法从训练样本中学习决策树的。决策树是一树 阅读详情

相关推荐

基于决策树算法的心脏病诊断

基于决策树算法的心脏病诊断 前言 提到机器学习常用的算法,决策树必须榜上有名。决策树算法

蓝天翔的博客 9646

参数调优:K折交叉验证与GridSearch网格搜索

本文代码及数据集来自《Python大数据分析与机器学习商业案例实战》 一、K折交叉验证 在机器学习中,因为训练集和测试集的数据划分是随机的,所以有时会重复地使用数据,以便更好地评估模型的有效性,并选出最好的模型,该做法称为交叉验证。具体而言就是对原始样本数据进行切分,然后组合成为多组不同的训练集和测试集,用训练集训练模型,用测试集评估模型。某次的训练集可能是下次的测试集,故而称为交叉验证。 交叉验证的方法有简单交叉验证、K折交叉验证和留一交叉验证3种。其中K折交叉验证应用较为广泛,它是指将数据集随机等分.

m0_46388544的博客 3206

[PPB] 使用决策树模型进行空气质量评价

一. 分析背景 要客观评价一个地区的环境质量状况, 需要综合考虑各种应诉之间以影响因素与环境质量之间错综复杂的关系. 采用传统的方法存在着一定局限性和不合理性. 因此, 从学术研究的角度对环境评价的技术方法及其理论进行探讨, 寻求更全面客观的新理论方法具有重要的现实意义. 本例通过建立决策树模型, 对数据中空气中相关气体的含量值与对应的空气等级进行分析, 实现对...

Vincent_Chu的博客 6761

机器学习05-决策树(python)

决策树在生活中有广泛的应用,通过逐步判断条件并做出相应选择,可以简化复杂的决策过程。无论是日常穿衣、选择餐厅,还是购买物品,决策树都可以帮助你快速、逻辑清晰地做出决策。这种方式不仅适用于个人决策,也在商业和管理中得到了广泛应用,如客户分类、产品推荐等。信息熵(Entropy)是度量信息的不确定性的一种工具。在机器学习中,信息熵通常用于衡量一个系统或数据集的混乱程度或不确定性。生活中的信息熵与机器学习中的信息熵原理相同,都是用来描述系统中随机性或不确定性的大小。

weixin_41645791的博客 5211

头歌实践教学平台python机器学习-决策树

鸢尾花数据集是一类多重变量分析的数据集。通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(SetosaVirginica)三个种类中的哪一类。sklearn中已经提供了鸢尾花数据集的相关接口,想要使用该数据集可以使用如下代码:#加载鸢尾花数据集#X表示特征,y表示标签。

学习只是用户态 2917

决策树模型案例_机器学习 | 决策树模型(二)实例

上面文章《决策树模型(一)理论》中,已详细介绍了决策树原理,包括决策树生长原理,决策树的特征选择原理,决策树剪枝策略以及决策树处理缺失值原理等等。如果您还没有阅读,可点击跳转,或关注公众号获取文章详情。本文将继决策树理论后,通过实际的案例应用,加深对决策树工作原理的理解。本文直接使用sklearn中决策树模型,sklearn自带的红酒数据集作为数据源。「本文字数8253」sklearn....

weixin_33160876的博客 3076

决策树的原理、方法以及python实现——机器学习笔记

考虑这样一个药品筛选问题,大批患有同种疾病的不同病人,服用5种候选药后取得同样的效果,现有每个病人服药前的几项生理指标数据,要通过这些数据来得到选药的建议,即要根据任何一个此类病人的生理指标来得到最合适药物的建议,这就可以使用决策树方法,建立以药物为输出变量,以生理指标为输入变量的多分类预测模型。右侧图为一个典型的树深度等于4的决策树。每个椭圆为树的节点,有向箭头将各层节点连在一起构成树的分支,一个分支的上下节点分别成为父、子节点,每个父节点下均仅有2个子节点的称为2叉树,2个以上节点的为多叉树。

qq_45259021的博客 4061

机器学习算法(3)之决策树算法

前言:首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。另外逻辑回归只能找到线性分割(输入特征x与logit之间是线性的,除...

不曾走远的博客 12万+

决策树案例分析

决策树(Decision Tree)常用于研究类别归属和预测关系的模型,比如是否抽烟、是否喝酒、年龄、体重等4项个人特征可能会影响到‘是否患癌症’,上述4项个人特征称作‘特征’,也即自变量(影响因素X),‘是否患癌症’称为‘标签’,也即因变量(被影响项Y)。

m0_37228052的博客 1215

白话机器学习算法理论+实战之决策树

写在前面 如果想从事数据挖掘和数据分析的工作,掌握常用的机器学习算法是非常有必要的,比如我之前写过的一篇十大机器学习算法的小总结,在这简单的先捋一捋, 常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等 无监督算法:聚类,降维,关联规则等 为了详细的理解这些,曾经看过西瓜书,统计学习方法,机器学习实战等书,也听过一些机器学...

Miracle8070 4878

QT的温湿度显示系统

大家好,这里是石侃侃的博客,欢迎前来讨论这篇文章介绍的是DHT11在2440上的基于Qt5.6的应用基于单片机系统的温湿度监测系统构成框图如图2-1所示。图2-1 系统构成框图该系统采用单片机s3c2440作为了本设计的核心元件。利用LCD作为了显示器件,利用触摸屏作为用户界面输入设备,第一行显示当前实时的温度,湿度,第二行依次显示历史时刻最高的温度值,最高的湿度值。第三行是一个文本框,记录了程...

zxpcus的博客 1万+

决策树算法——机器学习(理论+图解+python代码)

前言 暑假打算吃透一本书叫《机器学习》,大家也亲切的叫它西瓜书,看完决策树这部分想做做总结,虽然几年前对决策树的知识就有点印象,但是我发现现在又有了很多新的收获。 一、基本流程 二、划分选择 三、剪枝处理 四、连续与缺失值 五、多变量决策树 六、房价数据集的决策树算法python实现   一、基本流程 决策树(decision tree)是一类常见的机器学习算法,它是基于树结构...

huacha__的博客 3万+

从Zemax到Speos:HUD设计数据无缝迁移避坑指南(含STEP文件精度验证)

本文详细介绍了从Zemax到Speos的HUD设计数据无缝迁移方法,重点解决Zernike曲面参数保真、虚拟厚度设置和坐标系对齐等核心问题。通过STEP文件精度验证和工程化解决方案,帮助工程师避免数据迁移中的常见陷阱,提升HUD系统设计效率。适用于Ansys Zemax和Ansys Speos用户,优化光学性能验证流程。

h6i7j8的博客 1063

【机器学习】从理论到实践:决策树算法在机器学习中的应用与实现

本文详细介绍了决策树的基本原理、构建过程及其在机器学习中的应用。通过详细的代码示例,我们展示了如何使用决策树进行分类和回归任务,并探讨了决策树的优缺点及其改进方法。希望通过本文的介绍,读者能够更深入地理解决策树算法,并能在实际应用中灵活运用这一强大的工具。无论是在特征选择、分类任务、回归任务还是异常检测中,决策树都展现出了其独特的优势和广泛的应用前景。通过不断优化和改进,决策树将在更多的机器学习任务中发挥重要作用。

qq_61024956的博客 6384

PPPoe的抓包分析(详细)

PPPoe的报文结构 可以看出PPPoe的报文结构其实很简单,只不过是将PPPoe的报文塞到以太网的载荷中,而且它的头部字段也十分的简单,TLV就不说了,code字段表示了PPPoe不同的报文类型,比较常见的就是上面的五个报文了,PPPoe的报文类型其实还蛮多的。session ID主要的作用就是标识一段会话,因为使用PPPoe的最主要作用就是使得多台设备可以借助以太网多点接入多点访问的特点去和一台设备做上网认证请求,这样运营商一台认证设备就可以满足多个用户的认证请求,这和PPP相比起来好的不止一点。

qq_47529104的博客 7868

云计算虚拟化实验(一)——虚拟机软件VMware的安装以及虚拟机系统的安装(Windows7+CentOS7)

主要内容: 1、虚拟机软件的安装(以VMware为例) 2、虚拟机系统的安装(Window7 + CentOS7) 3、虚拟主机网络互访 4、不同局域网内的虚拟主机互访(软路由——海蜘蛛) 0 ——首先介绍一下什么是虚拟化? 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在

gg_asd的博客 1万+

机器学习——决策树

一、决策树定义: 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。 结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。 ⚪:内部结点 正方形:叶结点 二、决策树特征选择 2.1 特征选择问题 特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率。如果用一个特征去分类,得到的结果与随机的分类没有很大差别,那么这次分类是无

maggieyiyi的博客 1万+

在ubuntu20.04中安装MATLAB时常见问题及解决方法

   如果你刚装完ubuntu20.04,这时你想要安装MATLAB2021A,在输入命令./install进行安装时,可能会报以下错误:    terminate called after throwing an instance of ‘JailContainerException’ what(): Error: 88: No JRE version parsed from/media/jzx/MATHWORKS_R2021A/sys /java/jre/glnxa64/jre/release   

慕羽★的博客 1万+

基于决策树模型和支持向量机模型的手写数字识别

第一个功能:可以通过导入库和数据集、通过对数据集的预处理、读取、可视化,将数据集划分为训练集和测试级,更换不同的模型,并对模型进行评估,多方面对比不同的机器学习方法,对数据模型的影响。 第二个功能:将训练出来的数据进行预测,通过图片预测直观的方式将模型进行可视化,方便对比不同的机器学习算法。

m0_58585940的博客 3253

从 OPEN CURSOR 到 SELECT INTO TABLE:把 ABAP 数据读取的底层机制与性能差异讲透

ABAP数据库访问性能优化关键点 摘要:ABAP程序性能的核心在于数据读取方式的选择。本文分析了三种常见数据库访问方式的技术原理:显式游标(CURSOR)、SELECT-ENDSELECT循环和SELECT INTO TABLE。重点揭示了数据从数据库到应用服务器的传输机制,包括OPEN/REOPEN与FETCH操作、Array Fetch批量传输原理以及SAP游标缓存机制。通过VBAK表的性能测试数据对比,证明了不同场景下最优访问方式的选择依据:大数据量时显式游标性能优势明显,而SELECT INTO T

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 172

基于深度学习YOLOv8的PCB板缺陷检测系统

基于YOLOv8的PCB板缺陷检测系统,可以有效提高PCB生产过程中的检测效率。未来,我们可以进一步优化模型,结合更多的数据增强策略和先进的网络结构,以适应更复杂的生产环境。为了进行训练,理想的数据集应包含多种不同缺陷类型和不同背景的PCB图像。YOLOv8需要的数据格式为每个图像一个标签文件,每个标签文件包含缺陷的类别及其边界框坐标。运行该界面时,用户可以通过点击按钮选择图像,随后系统将自动检测图像中的PCB缺陷并显示结果。训练完成后,可以使用训练好的模型进行推理,检测新的PCB图像中的缺陷。

YOLO 1070

决策树算法:ID3

  决策树是最经常使用的数据挖掘算法,其核心是一个贪心算法,它采用自顶向下的递归方法构建决策树,下面是一个典型的决策树:   目前常用的决策树算法有ID3算法、改进的C4.5,C5.0算法和CART算法   ID3算法的核心是在决策树各级节点上选择属性时,用信息增益作为属性的选择标准,使得在每一个非节点进行测试时,能获得关于被测试记录最大的类别信息。 熵和信息增益   设S是训练样本集...

未名湖畔的落叶 2万+

21天教你学会PCIe专栏(14)--安全性考虑

1.1 定义安全性(Security):安全性是指保护系统免受未经授权的访问、攻击和破坏,确保数据的机密性、完整性和可用性。1.2 重要性数据保护:保护敏感数据,防止数据泄露和篡改。系统防护:防止恶意攻击,确保系统的稳定性和可靠性。合规性:满足行业标准和法律法规的要求,避免法律风险。用户信任:提高用户对系统的信任度,增强市场竞争力。通过今天的学习,你应该对PCIe安全性的重要性和常见威胁有了深入的了解,掌握了实施安全措施的方法和工具,以及安全开发的最佳实践。

xiaoheshang_123的博客 850

【机器学习】决策树(理论)

决策树(Decision Tree)是一种分类和回归方法,是基于各种情况发生的所需条件构成决策树,以实现期望最大化的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。它的运行机制非常通俗易懂,因此被誉为机器学习中,最“友好”的算法。决策树由结点和有向边组成。结点有两种类型:内部结点(圆)和叶结点(矩形)。其中,内部结点表示一个特征(属性);叶结点表示一个类别。而有向边则对应其所属内部结点的可选项(属性的取值范围)。

酱懵静的博客 6万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【机器学习】Python中的决策树算法探索

决策树是一种树形结构,其中每个内部节点表示一个特征上的测试,每个分支代表一个测试结果,而每个叶节点则代表一种类别或输出值。通过一系列的特征判断,决策树从根到某个叶节点的路径就对应了一个实例的分类或回归预测。Scikit-Learn是Python中最广泛使用的机器学习库之一,提供了简单易用的API来实现决策树算法。主要类包括用于分类任务,用于回归任务。决策树算法以其直观、灵活的特点,在众多领域展现出强大的应用潜力。通过Python及其丰富的机器学习库,我们可以轻松实现并优化决策树模型,解决实际问题。

鑫宝的博客 5637

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

机器学习——决策树算法原理及案例

机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响。决策树是机器学习中最基础且应用最广泛的算法模型。本文介绍了机器学习的相关概念、常见的算法分类和决策树模型及应用。通过一个决策树案例,着重从特征选择、剪枝等方面描述决策树的构建,讨论并研究决策树模型评估准则。最后基于 R 语言和 SPSS Modeler这两个工具,分别设计与实现了...

weixin_34060741的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 如何使用 sklearn 快速创造出我们所需的数据?
下一篇: 机器学习算法/模型——朴素贝叶斯分类
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值