机器学习入门(四)决策树

在上一篇文章 机器学习入门(三)逻辑回归 中介绍了监督学习的逻辑回归算法,这一篇文章将介绍决策树算法。

决策树

决策树是一种对实例进行分类的树形结构,通过多层判断区分目标所属类别。决策树会通过多层判断,从训练数据集中归纳出一组分类规则。

这里以分辨鸢尾花的种类为例,鸢尾花有三个种类,我们可以根据鸢尾花的花萼长度、花萼宽度、花瓣长度、花瓣宽度等四个特征来区别当前鸢尾花属于哪一类。

而决策树算法就可以帮我们找到分类的层次。比如说首先判断 花瓣宽度 < a 如果满足就是种类一,否则再通过 花萼长度 > b 来判断是否是种类二或者种类三。如下图所示:

鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例

决策树的算法

从上面我们知道,决策树其实就是分层判断。其中最重要的就是如何分层,这是由决策树算法来决定的。决策树有三种经典算法,分别是 ID3、C4.5、CART,它们的介绍如下:

ID3 C4.5 CART
算法描述 其核心是在决策树的各级节点上,使用信息增益方法作为属性的选择标准,来帮助确定生成每个节点时所采用的合适属性。 C4.5决策树生成算法相对于ID3算法的重要改进是使用信息增益率来选择节点属性。C4.5算法可以克服ID3算法存在的不足:ID3算法只适用于离散的描述属性,而C4.5算法既能够处理离散的描述属性,也可以处理连续的描述属性。 CART决策树是一种十分有效的非参数分类和回归方法,通过构建树、修剪树、评估树来构建一个二叉树。当终结点是连续变量时,该树为回归树;当终结点是分类变量,该树为分类树。

详细关于决策树算法的介绍可以看 ID3、C4.5、CART

示例

这里以鸢尾花数据集为例,使用 sklearn 来实现决策树。

ini 复制代码
# 建立决策树模型
from sklearn import tree
# min_samples_leaf 是叶子节点最少样本数对应参数
dc_tree = tree.DecisionTreeClassifier(criterion='entropy', min_samples_leaf=5)
dc_tree.fit(x, y)
# 可视化决策树
%matplotlib inline
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
fig = plt.figure(figsize=(10, 10))
tree.plot_tree(dc_tree, filled = True, 
               feature_names=['萼片长度', '萼片宽度', '花瓣长度', '花瓣宽度'], 
               class_names=['鸢尾濑户', '花斑鸢尾花', '鸢尾花'])

效果如下图所示:

其中:

  • entropy代表的是节点的熵值。在决策树用于分类问题时,熵是衡量节点数据纯度的一个指标。熵值越高,说明该节点中样本的类别越混乱;熵值越低,表明样本越倾向于属于同一类别。
  • samples表示该节点中包含的样本数量。也就是在决策树构建过程中,到达该节点的样本总数。
  • value是一个数组,数组中的每个元素表示该节点中属于各个类别的样本数量。例如,对于一个三分类问题,value = [10, 20, 30] 意味着该节点中有 10 个样本属于第一类,20 个样本属于第二类,30 个样本属于第三类。
  • class代表该节点中样本数量最多的类别标签。也就是根据value数组,样本数量占比最大的那个类别。

参考

相关推荐
青春不败 177-3266-05208 分钟前
MATLAB近红外光谱分析技术及实践技术应用
随机森林·机器学习·支持向量机·matlab·卷积神经网络·遗传算法·近红外光谱
NeoFii6 小时前
Day 22: 复习
机器学习
巫婆理发2228 小时前
强化学习(第三课第三周)
python·机器学习·深度神经网络
Blossom.1189 小时前
基于深度学习的图像分类:使用Capsule Networks实现高效分类
人工智能·python·深度学习·神经网络·机器学习·分类·数据挖掘
Coovally AI模型快速验证11 小时前
数据集分享 | 智慧农业实战数据集精选
人工智能·算法·目标检测·机器学习·计算机视觉·目标跟踪·无人机
GG向前冲12 小时前
机器学习对中特估股票关键特征选取的应用与研究
人工智能·机器学习·投资组合
计算机sci论文精选14 小时前
CVPR 2024 3D传感框架实现无监督场景理解新纪元
人工智能·机器学习·计算机视觉·3d·cvpr·传感技术
zzywxc78717 小时前
详细介绍AI在金融、医疗、教育、制造四大领域的落地案例,每个案例均包含实际应用场景、技术实现方案、可视化图表和核心代码示例
人工智能·深度学习·机器学习
Monkey PilotX18 小时前
VLA:自动驾驶的“新大脑”?
人工智能·机器学习·计算机视觉·自动驾驶
超龄超能程序猿19 小时前
图片查重从设计到实现(4)图片向量化存储-Milvus 单机版部署
人工智能·yolo·机器学习