Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >数据挖掘学习笔记:分类、统计学习

数据挖掘学习笔记:分类、统计学习

作者头像
四火
发布于 2022-07-18 05:44:08
发布于 2022-07-18 05:44:08
51500
代码可运行
举报
文章被收录于专栏:四火的唠叨四火的唠叨
运行总次数:0
代码可运行

ICDM(国际数据挖掘大会)2006 年从 18 种提名的数据挖掘算法中投票选出了十大算法。这 18 中提名数据挖掘算法分属 10 大数据挖掘主题,蓝色部分即为最终选出的十大算法:

  • 分类(Classification)
    • C4.5
    • CART
    • K Nearest Neighbours
    • Naive Bayes
  • 统计学习(Statistical Learning)
    • SVM
    • EM
  • 关联分析(Association Analysis)
    • Apriori
    • FP-Tree
  • 链接挖掘(Link Mining)
    • PageRank
    • HITS
  • 聚类(Clustering)
    • K-Means
    • BIRCH
  • 袋装与推进(Bagging and Boosting)
    • AdaBoost
  • 序列模式(Sequential Patterns)
    • GSP
    • PrefixSpan
  • 集成挖掘(Integrated Mining)
    • CBA
  • 粗糙集(Rough Sets)
    • Finding Reduct
  • 图挖掘(Graph Mining)
    • gSpan

以下是其中关于分类和统计学习主题的笔记。

C4.5

C4.5 算法源于 ID3 算法,也是一种分类决策树算法,但是做了如下的改进:

1、用 “信息增益率” 代替 “信息增益” 来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足:

关于 “信息增益率”,先要理解 “信息增益(Information Gain)”,请参见《使用 ID3 算法构造决策树》这篇文章,里面既介绍了 C4.5 的前身 ID3 算法,同时,也以一个实际例子提到了 “信息熵” 和 “信息增益” 的含义,这个例子理解以后,下面对于信息熵和信息增益的公式就清楚了。

信息熵(Entropy):

信息增益是用来衡量样本集 S 下属性 A 分裂时的信息熵减少量:

信息增益是信息熵的有效减少量,值越高,说明目标属性在参考属性处损失的信息熵越多,也就是失去的不确定性越多,那么在决策树进行分类的时候,它就应该越早作为决策的依据属性。

但是,使用信息增益作为判断节点分裂依据的一个缺陷在于它偏向于选择具有更多取值的属性作为节点分裂属性,而实际上属性值较多的属性不一定是最优的分类属性。

C4.5 算法使用信息增益率来取代信息增益,信息增益率的定义:

其中 Gain(S,A) 是上面提到过的信息增益,而 SplitInfo(S,A) 指的是分裂信息,代表了按照属性 A 来分裂样本集 S 的广度和均匀性:

公式中,从 S1 到 Sc 是 c 个不同值的属性 A 分割 S 而形成的 c 个样本子集。

2、在树构造过程中进行剪枝;

3、能够完成对连续属性的离散化处理:

对于连续型属性进行排序,得到多个阈值,取能够产生最大信息增益的阈值作为分裂的阈值。

4、能够对不完整数据进行处理:

在数据不完整时,对于某个具有缺失值的属性计算信息增益率,有几种处理办法,例如直接忽略该类样本,选择常用值或均值填充等等。

CART

CART(Classification And Regression Tree,分类回归树)采用一种二分递归分割的技术,将当前样本集分为两个子样本集,使得生成的决策树的每个非叶子节点都有两个分支。因此,CART 算法生成的决策树是结构简洁的二叉树。

还是举和《使用 ID3 算法构造决策树》一样的例子,现在我们要研究狗的智商,潜在的关联因子包括毛的长度和颜色:

颜色(color)

毛长度(length)

智商(IQ)

black

white

white

white

在决策树的每一个节点上都可以按照任一个属性来划分,但是到底按照那种属性来划分,需要用一个数值来衡量,例如 Gini 指数,如果我们用 k,k=1,2,3……c 表示类,其中 c 是类别集 Result 的因变量数目,pk 表示观测点中属于 k 类的概率,一个节点 A 的 Gini 指数定义为:

好,我们现在最终是要考察哪一个潜在关联因子和狗的智商关联度最高。先看毛长度,智商为高的狗有三条,毛长度一个短、两个长;智商为低的狗有一条,短毛:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Gini(length) = (3/4) * ( 1-( (1/3)² + (2/3)² ) ) + (1/4) * ( 1-( (1/1)² ) )

再看颜色,智商高的狗有三条,颜色两白一黑;智商低的狗有一条,颜色白:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Gini(color) = (3/4) * ( 1-( (1/3)² + (2/3)² ) ) + (1/4) * ( 1-( (1/1)² ) )

最后比较两者的 Gini 系数,如果 Gini(length) 更小,那么使用毛长度的划分要更好(但是这个例子里面可以看出二者的 Gini 系数相同)。

关于终止条件:最简单的情况是,如果只剩下一个元素了,或者包含元素都属于同一个类别了,那么分类就可以停止了,但是我们也可以设定一个阈值,低于这个阈值时就没有必要继续划分了。

关于剪枝:使用验证数据进行剪枝是 CART 的一个重要思想。最常见的有两种剪枝方式,预剪枝和后剪枝。预剪枝就是满足剪枝条件时树停止生长,后剪枝就是在允许决策树得到最充分生长的基础上,再根据一定的规则,自下而上逐层进行剪枝。

关于分类后的回归:现实中会有些数据很复杂,肉眼几乎看不出符合那种模型,因此构建全局的模型就有点不合适。“回归” 就是为了解决这类问题,在构建决策节点把数据数据切分成区域之后,局部区域可以进行回归拟合,例如最后取值为叶节点目标变量的加权值。

KNN

KNN(K Nearest Neighbours)属于比较简单的一种用来归类的算法,给定一个表示范围的 k 值,从而确定了一定的范围,然后根据范围内的点的分布来确定待分类目标点属于哪个范围。下面这张图来自维基百科

k 在这张图里可以理解成圆的半径,当 k 取值较小时,范围为图中实线的圆,圆内红色点数目多过蓝色点,因此绿色的待分类点属于红色点集的分类;当 k 取值较大,范围为图中虚线的圆时,蓝色点有三个,多于两个红色点,因此绿色的待分类点属于蓝色点集的分类。

当然,这只是最简单的一个例子,实际应用中,会有很多的推广情形,以及许多改进。例如,可以把二维的例子推广到 N 维;可以引入不同的距离计算方法(如把欧氏距离变成汉明距离);可以引入权值,增强较近的点对结果的影响等等。

Naive Bayes

朴素贝叶斯分类,对部分未知的状态用主观概率估计,然后用贝叶斯公式对概率进行修正,最后再利用期望值和修正概率做出最优决策的分类方法。基本思想是:

  1. 已知类条件概率密度参数表达式和先验概率;
  2. 利用贝叶斯公式转换成后验概率;
  3. 根据后验概率大小进行决策分类。

请参见我曾经写过的一篇文章 《朴素贝叶斯分类》,已经详细介绍了。

SVM

SVM(Support Vector Machine,支持向量机)是一种对线性数据和非线性数据进行分类的算法。它使用非线性映射,把原训练数据映射到较高维上,并且搜索新维度的最佳分离超平面,即将一个类的元素和其他类分离的最佳决策边界。

下面两幅图来自维基百科

从上图可见,两个维度上看,有两组数据,一组黑点表示,一组白点表示,直线 H1 并未做到分类;H2 虽然做到分类,但是两类之间的空隙太小;H3 分类了,并且使得两类之间的空隙最大。

这幅图展示分隔两个分类的 “最佳分离超平面”(两个虚线之间的最短距离达到最大),而落在图中虚线之间、得以成功分隔这两个分类的的超平面,都被称为 “支持向量”。

SVM 学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如前面介绍的分类方法,基于规则的分类器和人工神经网络等等)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。另外,SVM 一般只能用在二类问题,对于多类问题效果不好。

在低维线性不可分的模式通过非线性映射到高维特征空间后,可能可以做到线性可分了,但是维度的增加会引发计算量指数级增长的问题。核函数就是用来解决这样的问题的,上面和下面共两张图都来自 pluskid 的博客,上图可见这个数据集线性不可分,现在把平面空间点映射到三维空间后,再旋转坐标轴,使得重新满足线性可分:

EM

EM(Expectation-maximization,期望最大)算法在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。

在统计计算中,最大期望(EM)算法是在概率模型中寻找参数最大似然估计(一种统计方法,它用来求一个样本集的相关概率密度函数的参数。)或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量。最大期望经常用在机器学习计算机视觉的数据聚类领域。

  • 最大期望算法经过两个步骤交替进行计算: 第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;
  • 第二步是最大化(M),最大化在 E 步上求得的最大似然值来计算参数的值。

M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。

EM 的整个推导过程请参见 JerryLead 的这篇文章

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
随机森林
在机器学习的分类中,集成学习是按照学习方式分类的一种机器学习,所以先从集成学习讲起。
章鱼carl
2022/03/31
4710
随机森林
【机器学习】决策树
本文介绍了 ID3,C4.5,CART三种基本的决策树模型。首先介绍了决策树的特征选择,包括信息增益,信息增益率、基尼指数、最小均方差分别对应分类树ID3、C4.5、CART、回归树CART。然后介绍了决策树建树的一般流程、对比分类树和回归树建树的区别。最后介绍了树模型中避免过拟合问题的剪枝方法,包括前剪枝和后剪枝。
yuquanle
2020/04/01
6780
【机器学习】决策树
好记忆的机器学习面试--决策树
其实用一下图片能更好的理解LR模型和决策树模型算法的根本区别,我们可以思考一下一个决策问题:是否去相亲,一个女孩的母亲要给这个女海介绍对象。
mantch
2019/07/30
4730
好记忆的机器学习面试--决策树
机器学习笔记之决策树分类Decision Tree
决策树(decision tree)是一种依托于策略抉择而建立起来的树。机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。 树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,从根节点到叶节点所经历的路径对应一个判定测试序列。决策树可以是二叉树或非二叉树,也可以把他看作是 if-else 规则的集合,也可以认为是在特征空间上的条件概率分布。决策树在机器学习模型领域的特殊之处,在于其信息表示的清晰度。决策树通过训练获得的 “知识”,直接形成层次结构。这种结构以这样的方式保存和展示知识,即使是非专家也可以很容易地理解。
Jetpropelledsnake21
2021/03/12
3.9K0
机器学习笔记之决策树分类Decision Tree
『数据挖掘十大算法 』笔记一:决策树
C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART
百川AI
2021/10/19
8820
机器学习之决策树(Decision Tree)及其Python代码实现
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/54927178
大黄大黄大黄
2018/09/14
2.4K0
机器学习之决策树(Decision Tree)及其Python代码实现
决策树学习笔记(一):特征选择
相信很多朋友已经对决策树很熟悉了,决策树是机器学习中的一种基本的可用于分类与回归的方法,它是一些集成学习如GBDT,XGboost等复杂模型的基础。这些高级模型比如XGboost可以非常好地拟合数据,在数据挖掘比赛以及工业界中都有着非常出色的表现,受到了无数爱好者的追捧。
1480
2019/07/14
1.7K0
决策树算法:ID3,C4.5,CART
对于基本树我将大致从以下四个方面介绍每一个算法:思想、划分标准、剪枝策略,优缺点。
zhangjiqun
2024/12/14
1960
决策树算法:ID3,C4.5,CART
决策树算法:ID3,C4.5,CART
其实用一下图片能更好的理解LR模型和决策树模型算法的根本区别,我们可以思考一下一个决策问题:是否去相亲,一个女孩的母亲要给这个女海介绍对象。
大数据技术与机器学习
2019/11/20
1.3K0
决策树算法:ID3,C4.5,CART
机器学习面试干货精讲
本内容涉及模型核心数学公式,把本人面试中常被问到问题以及模型知识点的总结,起到提纲挈领作用,在准备的过程中抓住每个模型的重点。
Coggle数据科学
2019/09/12
8550
机器学习面试干货精讲
统计学习方法 五到九章笔记
决策树代表着一组if-else规则,互斥且完备。决策树的内部节点表示一个特征或者属性,叶节点表示一个类,也就是最终分类的确定是在叶结点上做的。 决策树要做的是与训练数据矛盾最小,同时具有良好泛化能力。
Sarlren
2023/03/16
5300
统计学习方法 五到九章笔记
分类规则挖掘(二)
  决策树 (Decision Tree) 是从一组无次序、无规则,但有类别标号的样本集中推导出的、树形表示的分类规则。树的叶子结点表示类别标号,即分类属性的取值,对应一个数据对象的子集;树的内部结点为条件属性,它是一个数据对象子集合的标识符;一个内部结点为每个条件属性值或组合的条件属性值构成一个树枝,连接到树的下一层结点 (也是数据对象子集);从树根到叶子结点的一条路径称为一条决策规则,它可以对未知数据进行分类或预测。
Francek Chen
2025/01/22
780
分类规则挖掘(二)
【机器学习】--决策树和随机森林
决策树是一种非线性有监督分类模型,随机森林是一种非线性有监督分类模型。线性分类模型比如说逻辑回归,可能会存在不可分问题,但是非线性分类就不存在。 二、具体原理
LhWorld哥陪你聊算法
2018/09/13
9560
【机器学习】--决策树和随机森林
机器学习_分类_决策树
叶子节点:存放决策结果 非叶子节点:特征属性,及其对应输出,按照输出选择分支 决策过程:从根节点出发,根据数据的各个属性,计算结果,选择对应的输出分支,直到到达叶子节点,得到结果
AomanHao
2022/01/13
9620
决策树与随机森林(从入门到精通)[通俗易懂]
决策树(decision tree)是一种基本的分类与回归方法,本文主要讨论用于分类的决策树。决策树学习通常包括三个步骤:特征选择,决策树的生成和决策树的修剪。而随机森林则是由多个决策树所构成的一种分类器,更准确的说,随机森林是由多个弱分类器组合形成的强分类器。
全栈程序员站长
2022/08/01
7440
决策树与随机森林(从入门到精通)[通俗易懂]
最常见核心的决策树算法—ID3、C4.5、CART(非常详细)
决策树是一个非常常见并且优秀的机器学习算法,它易于理解、可解释性强,其可作为分类算法,也可用于回归模型。本文将分三篇介绍决策树,第一篇介绍基本树(包括 ID3、C4.5、CART),第二篇介绍 Random Forest、Adaboost、GBDT,第三篇介绍 Xgboost 和 LightGBM。
Datawhale
2019/11/05
6K0
最常见核心的决策树算法—ID3、C4.5、CART(非常详细)
搞定机器学习面试,这些是基础
本文尽可能的不涉及到繁杂的数学公式,把面试中常问的模型核心点,用比较通俗易懂但又不是专业性的语言进行描述。希望可以帮助大家在找工作时提纲挈领的复习最核心的内容,或是在准备的过程中抓住每个模型的重点。
昱良
2018/07/31
7920
搞定机器学习面试,这些是基础
机器学习-算法篇(上)
逻辑斯蒂回归(Logistic Regression)虽然被称为回归,但其实际上是分类模型,常用于二分类。LR模型因其简单好实现、可解释强深受工业界喜爱。
harry1225
2021/11/24
4560
机器学习-算法篇(上)
三种决策树算法(ID3, CART, C4.5)及Python实现
决策树是属于机器学习监督学习分类算法中比较简单的一种,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。
YingJoy_
2018/03/11
21.6K2
三种决策树算法(ID3, CART, C4.5)及Python实现
机器学习面试中常考的知识点,附代码实现(二)
其实用一下图片能更好的理解LR模型和决策树模型算法的根本区别,我们可以思考一下一个决策问题:是否去相亲,一个女孩的母亲要给这个女海介绍对象。
AI研习社
2019/08/29
5930
机器学习面试中常考的知识点,附代码实现(二)
相关推荐
随机森林
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验