首页 > 其他分享 >机器学习-决策树

机器学习-决策树

时间:2023-02-15 11:14:42浏览次数:47  
标签:剪枝 机器 特征 学习 算法 数据 节点 决策树

目录

前言

  • 决策树是一种常用的机器学习算法,用于分类和回归问题。其主要思想是根据已知数据构建一棵树,通过对待分类或回归的样本进行逐步的特征判断,最终将其分类或回归至叶子节点

关键概念

  1. 节点:决策树由许多节点组成,其中分为两种类型:内部节点和叶子节点。内部节点表示某个特征,而叶子节点表示某个类别或回归值。
  2. 分支:每个内部节点连接着一些分支,每个分支代表着某个特征取值,表示样本在该特征上的取值。
  3. 根节点:决策树的根节点是整棵树的起点,即第一个判断特征的节点。
  4. 决策规则:决策树的每个节点表示一条决策规则,即对某个特征的判断,其决策规则是由已知数据集计算而得的。
  5. 剪枝:决策树为了避免过度拟合(Overfitting),通常会在构建好树之后进行剪枝操作,即去掉一些决策规则,以避免模型过于复杂。

实现流程

  1. 数据预处理:将原始数据转换成决策树可处理的数据格式。对于分类问题,需要将类别变量编码为数字;对于连续变量,需要进行离散化处理。
  2. 特征选择:从所有可用的特征中选择一个最佳的特征,用于划分数据集。常用的特征选择算法有信息增益、信息增益比和基尼指数等。
  3. 决策树的构建:将数据集递归地划分成越来越小的子集,直到数据集不能再被划分,或者达到预定的停止条件。在每个节点上选择最佳的特征,将数据集划分成两个子集,并在子集上递归地执行此过程,直到子集不能再被划分。
  4. 剪枝:为了避免过拟合,可以在构建完整棵树之后,对决策树进行剪枝。剪枝分为预剪枝和后剪枝两种方法。预剪枝是在决策树构建过程中,通过限制树的深度、节点数或其他条件,避免过拟合。后剪枝是在决策树构建完成之后,通过对子树进行剪枝,来减少决策树的复杂度。
  5. 决策树的评估:通过测试集或交叉验证等方法,对决策树的性能进行评估。评估指标包括准确率、精确率、召回率、F1分数等。
  6. 预测:将待预测的样本依次从根节点开始进行判断,按照决策规则向下移动,直到到达某个叶子节点,将样本归类于该叶子节点所代表的类别。

决策树优缺点

优点:

  1. 可解释性强:决策树模型的生成过程类似人类决策的过程,易于理解和解释,可帮助决策者了解数据特征、属性间的关系和决策规则,有助于对数据的深入分析和挖掘。
  2. 适用性广:决策树算法不需要对数据做过多的前置处理,如特征缩放、归一化等,可以直接处理离散或连续型的数据,且不受数据分布的影响,适用于各种类型的数据和问题。
  3. 可处理缺失值和异常值:决策树算法可以处理缺失值和异常值,因为在分裂节点时只需考虑当前样本的特征值,而不需要考虑其他样本的特征值。
  4. 速度快:决策树的训练和预测速度都很快,因为它的判定过程非常简单,只需对每个特征进行一次比较,所以时间复杂度为 O(n),其中 n 表示样本数量。

缺点:

  1. 容易过拟合:决策树的划分过程是基于训练数据的,因此容易出现过拟合现象,导致模型泛化能力差。可以通过剪枝、限制树的深度、增加样本数等方法来解决过拟合问题。
  2. 不稳定性高:由于数据的微小变化可能导致树结构的大幅变化,所以决策树的稳定性较差,需要采用集成学习等方法来提高稳定性。
  3. 对连续值处理不好:决策树算法对连续型变量的处理不如对离散型变量的处理好,需要对连续型变量进行离散化处理。
  4. 高度依赖数据质量:决策树算法需要有足够的样本数据和较好的数据质量,否则容易出现欠拟合和过拟合等问题,影响模型的性能。

典型的决策树算法

  1. ID3算法:ID3(Iterative Dichotomiser 3)算法是决策树算法中最早的一种,使用信息增益来选择最优特征。ID3算法基于贪心思想,一直选择当前最优的特征进行分割,直到数据集分割完成或没有特征可分割为止。
  2. C4.5算法:C4.5算法是ID3算法的改进版,使用信息增益比来选择最优特征。C4.5算法对ID3算法中存在的问题进行了优化,包括处理缺失值、处理连续值等。
  3. CART算法:CART(Classification and Regression Trees)算法是一种基于基尼不纯度的二叉树结构分类算法,用于解决二分类和回归问题。CART算法可以处理连续值和离散值的特征,能够生成二叉树结构,具有较好的可解释性。
  4. CHAID算法:CHAID(Chi-square Automatic Interaction Detection)算法是一种基于卡方检验的决策树算法,用于处理分类问题。CHAID算法能够处理多分类问题,不需要预先对特征进行处理。
  5. MARS算法:MARS(Multivariate Adaptive Regression Splines)算法是一种基于样条插值的决策树算法,用于回归问题。MARS算法能够处理连续值和离散值的特征,能够生成非二叉树结构,具有较好的拟合能力。

代码

基于Python的简单决策树实现,以Iris数据集为例:

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 构建决策树
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)

# 预测
y_pred = clf.predict(X_test)

# 评估性能
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy: ", accuracy)

标签:剪枝,机器,特征,学习,算法,数据,节点,决策树
From: https://www.cnblogs.com/alax-w/p/17122022.html

相关文章

  • 多标签学习算法参考文献汇集笔记
    《多标签学习在智能推荐中的研究与应用》[1]朱峙成,刘佳玮,阎少宏.多标签学习在智能推荐中的研究与应用[J].计算机科学,2019,46(S2):189-193.摘要:  传统的智能......
  • NumPy数组如何保存到文件中以进行机器学习?
    对于资深编程人员来说,在机器学习模型中常婵需要使用到NumPy数组,NumPy数组主要是处理Python中数据有效的数据结构,机器学习模型(scikit-learn)和深度学习模型(Keras)都希望使用Nu......
  • 我好像找到了点学习英文的技巧
    在开头,我得先声明一句,学习英语没有捷径,但是有技巧。在之前的几年,我陆续的也发过2篇英语学习的文章《程序员英语高效学习法》和《每次阅读外文技术资料都头疼,终......
  • 机器学习 入门 书籍 电子书 pdf
    机器学习入门书籍推荐(机器学习、机器学习实战、深度学习、神经网络与深度学习等),关注公众号:后厂村搬砖工。发送:算法工程师即可 ......
  • 【学习笔记】数列特征方程与特征根
    觉得有意思就稍微微写写,内容大多摘自某本书.1.不动点求数列通项对于函数\(f(x)\),若存在实数\(x_0\)使得\(f(x_0)=x_0\),则称\(x_0\)是函数\(f(x)\)的一......
  • VisionPro学习笔记(1)——软件介绍和基本使用
    前言自己使用visionPro已经有段时间了,最近也一直在研究其算子的理论,为了加深印象,计划将自己的学习笔记整理在博客园,当然其官方文档对如何使用及其各种算子都有详细的......
  • AI问答 - 怎样更有效学习
    AI问答-怎样更有效学习==AnswerbyChatGPT==设定可实现和可衡量的目标:花一些时间确定您需要和想要学习的内容,然后提出可帮助您保持正轨的可衡量目标。分解大任务:将......
  • NativeMemoryTracking的再学习
    摘要最近一段时间学习jvm比较多.为了能够更加深入的进行一些调优和峰值性能的配置.看了很多像是NMT,inline,堆区方法区以及分层编译等知识.但是看到华为毕昇社区说的co......
  • 总结论文:SMARTCAST:预测土壤水分插入到未来使用地球观测数据的深度学习框架
    “SMARTCAST:PREDICTINGSOILMOISTUREINTERPOLATIONSINTOTHEFUTUREUSINGEARTHOBSERVATIONDATAINADEEPLEARNINGFRAMEWORK”(Foley等,2020,p.1)SMARTCA......
  • PMP学习笔记《第一章 引论》
    什么是项目?项目是:为创造独特的产品、服务或成果而进行的临时性工作。项目的三大特性:临时性、独特性、渐进明细。1)项目的过程是临时的,但临时并不意味着时间短比如:修建体育场......