有监督学习2--KNN和决策树

有监督学习2–KNN和决策树

什么是KNN:
KNN(K-Nearest Neighbor)就是k个最近的邻居的意思,即每个样本都可以用它最接近的k个邻居来代表。KNN常用来处理分类问题,但也可以用来处理回归问题。
核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
相似度的衡量标准一般为距离,即距离越近相似度越高,距离越远相似度越小。
注意:在KNN算法模型中,对于K值是敏感的

先举个例子:
下图中的绿色方形图案属于哪一类?
在这里插入图片描述
注意:由于对k值敏感,k值不同,分类的结果可能不同。
如上图,K=5, 分类为蓝色; K=10,分类为红色。

KNN的算法三要素:
K值的选取
距离度量的方式
分类决策规则

k值的选择:
对于K值的选择,没有一个固定的经验。
选择较小的K值,就相当于用较小的邻域中的训练实例进行预测,训练误差会减小,容易发生过拟合;
选择较大的K值,就相当于用较大邻域中的训练实例进行预测,其优点是可以减少泛化误差,缺点是训练误差会增大。
K值一般根据样本的分布,选择较小的值,通常通过交叉验证选择一个合适的K值。

距离度量和分类规则
常用的距离度量方式有:
欧氏距离: 距离差的平方和,再开平方根
在这里插入图片描述
曼哈顿距离:距离差的绝对值,再开平方根
在这里插入图片描述
对于分类规则:
在这里插入图片描述
KNN算法的优点:
理论成熟,思想简单,既可以用来做分类也可以用来做回归;
可用于非线性分类;
对数据没有假设,准确度高,对噪声不敏感。
KNN算法的缺点:
计算量大;
样本不平衡问题 (即有些类别的样本数量很多,而其它样本的数量很少);
需要大量的内存。

决策树:
结构:
在这里插入图片描述
注意:
决策树由根节点,子节点和叶节点构成;
除了根节点之外的其它节点统称为叶子节点

决策树构建过程:
1.特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法)。
2.决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。
3.剪枝:决策树容易过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)。
决策树的生成是一个递归的过程,在决策树的基本算法中,有三种情况会导致递归返回:
当前节点包含的样本全属于同一类别,无需划分;
当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
当前节点包含的样本集为空,不能划分。

决策树中三种算法:
1.ID3算法
2.C4.5
3.CART

1.ID3算法
ID3算法是由Ross Quinlan提出的决策树的一种算法实现,以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类。
ID3算法是建立在奥卡姆剃刀的基础上:越是小型的决策树越优于大的决策树(be simple简单理论)。
ID3算法的核心思想:以信息增益度量属性选择,选择分裂后信息增益最大的属性进行分裂。

ID3算法流程
(1)、初始化属性集合和数据集合。
(2)、计算数据集合信息熵S和所有属性的信息熵,选择信息增益最大的属性作为当前决策节点。
(3)、更新数据集合和属性集合(删除掉上一步中使用的属性,并按照属性值来划分不同分支的数据集合)。
(4)、依次对每种取值情况下的子集重复第二步。
(5)、若子集只包含单一属性,则为分支为叶子节点,根据其属性值标记。
(6)、完成所有属性集合的划分。

在这里提到一个概念信息熵,什么事信息熵?
信息熵
信息熵,是用来衡量-个随机变量出现的期望值。如果信息的不确定性越大,熵的值也就越大,出现的各种情况也就越多
例:如果确定一件事情的发生概率为100%,我们就认为这件事的信息量为0 (既然确定了,自然就没有未知的信息量了)。
信息熵与事件的概率分布有关,概率分布越均匀,信息熵越大。当所有概率均等的情况下,信息熵最大
在这里插入图片描述
数据集的信息熵
在这里插入图片描述
条件熵和信息增益
在这里插入图片描述
决策树算法(ID3)的优缺点
优点:
概念简单,计算复杂度不高,可解释性强,输出结果易于理解;
数据的准备工作简单, 能够同时处理数据型和常规型属性,其他的技术往往要求数据属性的单一;
对中间值得缺失不敏感,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
应用范围广,可以对很多属性的数据集构造决策树,可扩展性强。可用于不熟悉的数据集,并从中提取出一些列规则这一点强于KNN。
缺点:
可能会产生过度匹配的问题(决策树过深,容易导致过拟合,泛华能力差,因此需要剪枝);
信息缺失时处理起来比较困难,忽略数据集中属性的相关性;
信息增益来度量会偏向于取值较多的属性(有缺失值的会受影响)作为分类属性。

2.C4.5
上面讨论的决策树的ID3算法,属性只能是离散的,当然属性值可以是连续的数值型,但是需要对这些数据进行预处理,变为离散型的,才可以运用ID3算法。
C4.5是继承了ID3算法的优点,并在此基础上做出改进的一个算法。
所以Ross Quinlan又提出了C4.5算法,能够处理属性是连续型的。

相比于上面的ID3算法,C4.5算法进行了改进。
C4.5的改进点
C4.5算法是决策树的一种是基于ID3的改进和提升。主要的改进有:
改进1:用信息增益率代替信息增益来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性不足:
在这里插入图片描述
改进2:能够完成对连续值属性的离散化处理。
改进3:能处理属性值缺失的情况。
改进4:在决策树构造完成之后进行剪枝。

这里又提到了信息增益率这个概念,什么事信息增益率?
在这里插入图片描述
3.CART
CART基本概念
CART(Classification and Regression Tree)分类回归树:是在ID3的基础上 进行优化的决策树,学习CART记住以下几 个关键点:
CART既能是分类树,又能是回归树。
当CART是分类树时,采用GINI值作为节点分裂的依据;当CART是回归树时,采用样本的最小方差作为节点分裂的依据。
CART是一棵二叉树。
如右图所示,即有离散数据也有连续数据,因此可以即做分类,又做回归处理。

CART节点分裂
分裂的目的是为了能够让数据变纯,使决策树输出的结果更接近真实值。如果是分类树,CART采用GINI值衡量节点纯度;如果是回归树,采用样本方差衡量节点纯度。节点越不纯,节点分类或者预测的效果就越差。
在这里插入图片描述
分裂的目的是为了能够让数据变纯,使决策树输出的结果更接近真实值。如果是分类树,CART采用GINI值衡量节点纯度;如果是回归树,采用样本方差衡量节点纯度。 节点越不纯,节点分类或者预测的效果就越差。

这里提到分类树和回归树:
分类树:
在这里插入图片描述
回归树:
在这里插入图片描述

发布了30 篇原创文章 · 获赞 19 · 访问量 2206

猜你喜欢

转载自blog.csdn.net/qiaoqiaomanman/article/details/104907556
今日推荐