机器学习中的分类算法详细介绍一(KNN、决策树)

这篇具有很好参考价值的文章主要介绍了机器学习中的分类算法详细介绍一(KNN、决策树)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

机器学习中的分类算法有:KNN算法、决策树、随机森林、SVM、极限学习机、多层感知机(BP神经网络)、贝叶斯方法。

1、KNN算法

关键知识:数据预处理(数据标准化)、K个邻居(需要由用户指定)、距离计算方式(需要考虑数据的特点)
核心思想:物以类聚人以群分,空间相近则类别相似
可以用于非数值类的统计数据的分类

1.1 算法流程

①准备样本数据(训练数据),对数据进行预处理(如:标准化、缺失值补充等)。
②计算测试样本点(测试数据)到其他每个样本点的距离(有L1距离[马氏距离]、L2距离[欧式距离]、余弦距离等等) 。
③对每个测试样本点与所有训练数据的距离进行排序,然后选择出距离最小的K个点 [3] 。
④对K个点所属的类别进行比较,根据少数服从多数的原则,将测试样本点归入在K个点中占比最高的那一类 [3] 。

1.2算法流程示意图

机器学习分类算法,机器学习,机器学习,分类,决策树
1、将所有样本数据进行预处理,并构建样本空间;
2、输入一个新的数据Xu,并对Xu进行预处理;
3、计算新数据Xu到其他每个样本点的距离;
4、对新数据到所有样本点的距离进行排序,然后选择出距离最小的K个点,上图选出了5个点,可以得出k=5,W1:4;W2:0;W3:1;
5、对5个点所属的类别进行比较,根据少数服从多数的原则,将新的数据归入W1中。

1.3 优缺点

优点

KNN方法思路简单,易于理解,易于实现,无需估计参数

缺点

1、当样本不平衡时,容易偏向预测多类别。如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数
2、计算量大,需要计算每个测试数据与所有样本数据的距离

1.4 使用技巧

样本不平衡

对多数类数据进行均匀的下采样,使其类别频次与少数类相同

计算量大

对训练数据整体进行下采样,降低其空间密度,最终减少训练数据,但又不影响其分布特性

2、决策树

决策树是一种树形结构,由根结点、内部节点和叶子节点组成。其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
核心思想:决策树的每一次分叉,都会使数据变得更纯。
关键知识:决策树是一个迭代过程,需要由终止条件;决策树判断纯度增益方式有三种:ID3(信息增益)、C4.5(信息增益率)、CART(基尼系数)

更多信息参考 https://aistudio.baidu.com/aistudio/projectdetail/1700924?ad-from=1636

2.2 算法流程

基本流程如下,针对ID3、C4.5、CART各有差异。
1、构建根节点。(将所有的数据都汇集到一起)
2、遍历树的所有未划分节点,判断当前节点是否需要继续划分
3、遍历当前节点的所有可用特征,尝试用该特征对数据进行划分,计算出划分后的子节点纯度增益信息
4、比较步骤二中各种特征划分后的数据纯度信息,选择纯度增益最大的特征做子节点,并删除本步骤使用的特征(越分叉,可用特征越少;父节点特征,不会在子节点二次利用)
5、回到步骤二

算法流程图如下所示:
机器学习分类算法,机器学习,机器学习,分类,决策树
图片引用自https://blog.csdn.net/qq_43517635/article/details/105992863

2.3 ID3算法

以信息增益来度量特征选择,选择信息增益最大的特征进行分裂。算法采用自顶向下的贪婪搜索遍历可能的决策树空间,最终会划分到每一个叶子节点都很纯。
基本概念有信息熵、条件熵、信息增益。熵:描述信息的混乱程度(不确定性),越大表示信息越混乱

信息熵:是度量样本集合“纯度”最常用的一种指标。
计算公式:下面公式中:p(i|t) 代表了节点 t 为分类 i 的概率,信息熵Ent(D)的值越小,其纯度越高。
​​​​​​机器学习分类算法,机器学习,机器学习,分类,决策树

条件熵:以某条件对数据进行划分后的信息熵(划分后的数据要乘以其再原始数据中的占比)
计算公式:机器学习分类算法,机器学习,机器学习,分类,决策树

信息增益: 信息熵 - 条件熵; 条件熵小于信息熵;信息增益越大表示使用该特征来划分所获得的“纯度提升越大”
计算公式:公式中 D 是父亲节点,Di 是子节点,Gain(D,a)中的 a 作为 D 节点的属性选择。
机器学习分类算法,机器学习,机器学习,分类,决策树

缺点

ID3 没有剪枝策略,容易过拟合;
信息增益准则对可取值数目较多的特征有所偏好,类似“编号”的特征其信息增益接近于 1;
只能用于处理离散分布的特征,对于连续的数值无法进行处理;
没有考虑缺失值。

2.4 C4.5算法

C4.5 算法最大的特点是克服了 ID3 对特征数目的偏重这一缺点,引入信息增益率来作为分类标准,减少了模型对属性值较多时的分类偏好。具体改进有:
1、引入了悲观剪枝方法的后剪枝策略
2、提出了使用信息增益率作为划分标注
3、提出连续特征的离散化(按照阶段范围对数据进行离散,如按照成绩值评出优、良、中、差、等离散类别)
4、提出了对缺失值的处理方法

信息增益率:
计算公式:属性a的可能取值数目越多,则IV(a)越大。
机器学习分类算法,机器学习,机器学习,分类,决策树

缺失值处理方法

1、在有缺失值时如何计算信息增益率?
属性完整率*完整属性的信息增益率=有缺失值的信息增益率
例如:100个数据,对于属性A,其中25个属性值缺失,使用75个数据计算出的信息增益为0.3,
属性A的信息增益率为0.75(属性完整率)*0.3(完整属性的信息增益率)

关键点:对于缺失数据计算信息增益率不一定会将该属性选择为叶子节点

2、有缺失值的特征作为叶子节点时该如果操作?
先将有值的数据进行划分,得到其在各个子节点的划分比例。对于有缺失值的属性,按照权重(划分比例)将其分配到子节点中。
例如:100个数据,对于属性A,其中25个属性值缺失,其被作为划分节点,对于有值的属性划分后50个为左叶子、25个为右叶子。
缺失属性的数据同时进入两个叶子节点,只是其在右叶子节点时,每个数据的权重为2/3,而在左叶子节点时,每个数据的权重为1/3

关键点:缺失数据按照权重同时进入多个叶子节点

预剪枝策略

在节点划分前来确定是否继续增长,及早停止增长的主要方法如下。其本质为决策树迭代的终止条件,可补充到ID3算法中
(1)节点内数据样本低于某一阈值;
(2)所有节点特征都已分裂(其父节点把所有可用特征都进行利用);
(3)节点划后准确率下降了;
(4)预剪枝不仅可以降低过拟合的风险而且还可以减少训练时间,但另一方面它是基于“贪心”策略,会带来欠拟合风险。

悲观后剪枝策略

在已经生成的决策树上进行剪枝,从而得到简化版的剪枝决策树,可以有效抑制过拟合。

用递归的方式从低往上针对每一个非叶子节点,评估用一个最佳叶子节点去代替这课子树是否有益。如果剪枝后与剪枝前相比其错误率是保持或者下降,则这棵子树就可以被替换掉。

后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但同时其训练时间会大的多。

缺点

1、剪枝策略可用在优化
2、使用多叉树树,计算效率不足,应使用二叉树
3、计算熵时存在对数运算,在数值离散化时需要进行排序
4、只能用于分类,不能用于回归
5、在构造树的过程中,需要按照属性值进行排序,从中找到合适的分割点,其要求能一次性将数据加载到内存中。

2.5 CART

CART(Classification and Regression Tree,分类回归树),从名字就可以看出其不仅可以用于分类,也可以应用于回归。CART 算法的二分法可以简化决策树的规模,提高生成决策树的效率。其包含的基本过程有分裂,剪枝和树选择:
分裂: Gini 系数作为变量的不纯度量;分裂过程是一个二叉递归划分过程,其输入和预测特征既可以是连续型的也可以是离散型的,CART 没有停止准则,会一直生长下去
剪枝:采用代价复杂度剪枝,从最大树开始,每次选择训练数据熵对整体性能贡献最小的那个分裂节点作为下一个剪枝对象,直到只剩下根节点。CART 会产生一系列嵌套的剪枝树,需要从中选出一颗最优的决策树;
树选择:用单独的测试集评估每棵剪枝树的预测性能(也可以用交叉验证)。

Gini 系数,越小越好,表示数据越纯(与熵类似,与信息增益和信息增益率相反),反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。基尼指数本质是对信息增益的一种改进方法(为信息熵的一阶泰勒展开),其还是偏向于特征值较多的特征(可以参考信息增益率改进Gini系数,但未必需要改进)。基尼指数可以用来度量任何不均匀分布,是介于 0~1 之间的数,0 是完全相等,1 是完全不纯。

计算公式:机器学习分类算法,机器学习,机器学习,分类,决策树
Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。其值越小,则纯度越高。
而属性a的基尼指数可以定义为如下公式:
机器学习分类算法,机器学习,机器学习,分类,决策树

优点

1、CART 采用二叉树进行构建,运算速度更快;
2、CART 既可以分类也可以回归;
3、CART 使用 Gini 系数作为变量的不纯度量,减少了以前熵模型中大量的对数运算
4、CART 可用消除类别不平衡所带来的影响;
5、CART 采用“基于代价复杂度剪枝”方法进行剪枝

类别不平衡处理

确保叶子节点与父节点的先验相等,及用叶子节点类别A的数据量除以父节点类别A的数据量得到Ra,依次类推分别得到Rb,Rc,选择最大的Rx所表示的类别来表示当前叶子的类别。其只进行了类内的频次比较,故而消除了类别数量不平衡的影响。
例如:
父节点类别A数为100,类别B数为1000,子节点类别A数位80,类别B数为200
Ra=80/100=0.8,Rb=200/1000=0.2,所以该子节点表示的类别为类别A。

连续值处理方法

CART 分类树采用基尼系数的大小来度量特征的各个划分点
CART 回归树采用方差度量方式来度量特征的各个划分点。对于任意划分特征 A,对应的任意划分点 s 两边划分成的数据集 D1和 D2,求能使D1和 D2各自集合的均方差最小点。

回归应用

回归是指预测一个连续的数值,CART 回归树先以常规方法进行树构建,然后在预测时以数据所对应的叶子节点数据中的标签值的中位数或平均值来作为预测结果。文章来源地址https://www.toymoban.com/news/detail-704866.html

到了这里,关于机器学习中的分类算法详细介绍一(KNN、决策树)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习:KNN算法对鸢尾花进行分类

    1.算法概述 KNN(K-NearestNeighbor)算法经常用来解决分类与回归问题, KNN算法的原理可以总结为\\\"近朱者赤近墨者黑\\\",通过数据之间的相似度进行分类。就是通过计算测试数据和已知数据之间的距离来进行分类。 如上图,四边形代表测试数据,原型表示已知数据,与测试数据最

    2024年02月09日
    浏览(53)
  • 【机器学习】KNN 算法介绍

    KNN 算法,或者称 k-最近邻算法,是 有监督学习 中的 分类算法 。它可以用于分类或回归问题,但它通常用作分类算法。 KNN 的全称是 K Nearest Neighbors,意思是 K 个最近的邻居。该算法用 K 个最近邻来干什么呢?其实,KNN 的原理就是:当预测一个新样本的类别时, 根据它距离

    2023年04月24日
    浏览(83)
  • 《机器学习核心技术》分类算法 - 决策树

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 小白零基础《Python入门到精通》 决策树是一种 「二叉树形式」 的预测模型,每个 「节点」 对应一个 「判断条件」 , 「满足」 上一个条件才

    2024年02月11日
    浏览(57)
  • 机器学习基础之《分类算法(6)—决策树》

    一、决策树 1、认识决策树 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-else结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法 2、一个对话的例子 想一想这个女生为什么把年龄放在最上面判断!!! 如何高效的进行决策?特征的先后顺序

    2024年02月09日
    浏览(50)
  • 头歌机器学习---sklearn中的kNN算法

    第1关 使用sklearn中的kNN算法进行分类 第2关 使用sklearn中的kNN算法进行回归

    2024年02月06日
    浏览(48)
  • 2.机器学习-K最近邻(k-Nearest Neighbor,KNN)分类算法原理讲解

    🏘️🏘️个人主页:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,CSDN内容合伙人,阿里云社区专家博主,新星计划导师,在职数据分析师。 🎉🎉 免费学习专栏 : 1. 《Python基础入门》——0基础入门 2.《Python网络爬虫》——从入门到精通 3.《Web全栈开

    2024年01月23日
    浏览(53)
  • 机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化

    什么是knn算法? KNN算法是一种基于实例的机器学习算法,其全称为K-最近邻算法(K-Nearest Neighbors Algorithm)。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是:对于一个新的输入样本,通过计算它与训练集中所有样本的距离,找到与它距离最近的K个训练集样

    2024年02月03日
    浏览(41)
  • python机器学习决策树和SVM向量机算法实现红酒分类

    经典的红酒分类数据集是指UCI机器学习库中的Wine数据集。该数据集包含178个样本,每个样本有13个特征,可以用于分类任务。 具体每个字段的含义如下: alcohol:酒精含量百分比 malic_acid:苹果酸含量(克/升) ash:灰分含量(克/升) alcalinity_of_ash:灰分碱度(以mEq/L为单位)

    2024年02月08日
    浏览(42)
  • python机器学习——分类模型评估 & 分类算法(k近邻,朴素贝叶斯,决策树,随机森林,逻辑回归,svm)

    交叉验证:为了让被评估的模型更加准确可信 交叉验证:将拿到的数据,分为训练和验证集。以下图为例:将数据分成5份,其中一份作为验证集。然后经过5次(组)的测试,每次都更换不同的验证集。即得到5组模型的结果,取平均值作为最终结果。又称5折交叉验证。 通常情

    2024年02月03日
    浏览(67)
  • 决策树:理解机器学习中的关键算法

    决策树是一种流行而强大的机器学习算法,它从数据中学习并模拟决策过程,以便对新的未知数据做出预测。由于其直观性和易理解性,决策树成为了分类和回归任务中的首选算法之一。在本文中,我们将深入探讨决策树的工作原理、如何构建决策树、它们的优缺点,以及在

    2024年01月18日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包