博客:https://www.cnblogs.com/enhaofrank/,公众号:生信AI区块链科技前沿,github:https://github.com/enhaofrank

功不唐捐 玉汝于成

机器学习之分类模型

这次博客准备写一系列有关机器学习的分类模型,大家都知道分类模型有很多,有KNN,SVM,逻辑回归,决策树,随机森林,朴素贝叶斯等。

下面一一介绍这些算法的思想以及优缺点:

 

KNN(K近邻法)

 K-近邻是一种分类算法,其思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。找到训练集样本空间中的K个距离预测样本x最近的点,统计K个距离最近的点的类别,找出个数最多的类别,将x归入该类别。

优点:

(1)简单有效,容易理解和实现。

(2)重新训练的代价较低(类别体系的变化和训练集的变化)。

(3)由于KNN方法主要依赖周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

(4) 适合处理多模分类和多标签分类问题。

缺点:

(1)是lazy learning方法(决策在测试时生成),比一些积极学习的算法要慢;

(2)计算量比较大(需要计算到所有样本点的距离),需对样本点进行剪辑;

(3)样本不平衡会导致预测偏差较大,可采用加权投票法改进;

(4)容易对维度灾难敏感;

(5)类别评分不是规格化的(不像概率评分)。

 

 SVM(支持向量机)

在 SVM 中,选择一个超平面,它能最好地将输入变量空间划分为不同的类,要么是 0,要么是 1。在 2 维情况下,可以将它看做一根线。支持向量机是一种二类分类模型,他的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。

 (1)它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。

(2)它基于结构风险最小化理论之上在特征空间中构建最优超平面,使得学习器得到全局最优解,并且在整个样本空间的期望以某个概率满足一定上界。

优点:

(1)适合小样本情况下的机器学习问题;

(2)可以提高泛化性能;

(3)可以解决高维问题;

(4)可以解决非线性问题;

(5)可以避免神经网络结构选择和局部极小点问题。

缺点:

(1)对缺失数据敏感;

(2)对非线性问题没有通用解决方案,必须谨慎选择Kernel function来处理;

(3)计算复杂度高。主流的算法是O(n^2)的,大规模数据计算耗时。

 

decision tree(决策树)

决策树是一种基本的分类方法,其模型就像一棵树来表示我们的决策过程,这棵树可以是二叉树(比如CART 只能是二叉树),也可以是多叉树(比如 ID3、C4.5 可以是多叉树或二叉树,在ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择。在C4.5算法中,采用了信息增益比来选择特征,以减少信息增益容易选择特征值多的特征的问题。但是无论是ID3还是C4.5,都是基于信息论的熵模型的,这里面会涉及大量的对数运算。能不能简化模型同时也不至于完全丢失熵模型的优点呢?有!CART分类树算法使用基尼系数来代替信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,特征越好。)。根节点包含整个样本集,每个叶节点都对应一个决策结果(注意,不同的叶节点可能对应同一个决策结果),每一个内部节点都对应一次决策过程或者说是一次属性测试。从根节点到每个叶节点的路径对应一个判定测试序列。

 优点:

(1) 计算复杂度不高,易于理解和解释;

(2) 数据预处理阶段比较简单,且可以处理缺失数据;

(3) 能够同时处理数据型和分类型属性,且可对有许多属性的数据集构造决策树,其他技术往往需要数据属性的单一;

(4) 是一个白盒模型,若给定一个观察模型,则根据所产生的决策树很容易推断出相应的逻辑表达式;

(5) 在相对短的时间内能够对大数据集合做出可行且效果良好的分类结果。

缺点:

(1)对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征。因此建议用平衡的数据训练决策树;

(2)决策树的结果可能是不稳定的,因为在数据中一个很小的变化可能导致生成一个完全不同的树,这个问题可以通过使用集成决策树来解决;

(3)实际决策树学习算法是基于启发式算法,如贪婪算法,寻求在每个节点上的局部最优决策。这样的算法不能保证返回全局最优决策树;

(4)忽略属性之间的相关性;

(5)易于过拟合;

(6)对噪声数据较为敏感。

 

Random Forest(随机森林)

随机森林(Random Forest)是 Bagging 的一个变体。Ramdon Forest 在以决策树为基学习器构建 Bagging 集成的基础上,进一步在决策树的训练过程中引入随机属性选择.它属于集成学习的一种组合分类算法(确切说是属于bagging),集成学习的核心思想就是将若干个弱(基)分类器组合起来,得到一个分类性能显著优越的强分类器。如果各弱分类器之前没有强依赖关系、可并行生成,就可以使用随机森林算法。 随机森林利用自主抽样法(bootstrap)从原数据集中有放回地抽取多个样本,对抽取的样本先用弱分类器—决策树进行训练,然后把这些决策树组合在一起,通过投票得出最终的分类或预测结果。

优点:

(1)表现性能好,与其他算法相比有着很大优势。
(2)随机森林能处理很高维度的数据(也就是很多特征的数据),并且不用做特征选择。
(3)在训练完之后,随机森林能给出哪些特征比较重要。
(4)训练速度快,容易做成并行化方法(训练时,树与树之间是相互独立的)。
(5)对于不平衡数据集来说,随机森林可以平衡误差。当存在分类不平衡的情况时,随机森林能提供平衡数据集误差的有效方法。

缺点:

(1)当随机森林中的决策树个数很多时,训练时需要的空间和时间会比较大

(2)随机森林还有许多不好解释的地方,有点算是黑盒模型

(3)在某些噪音比较大的样本集上,随机森林容易陷入过拟合

 

Logistic regression(逻辑斯谛回归)

逻辑回归类似于线性回归,适用于因变量不是一个数值字的情况 (例如,一个“是/否”的响应)。它虽然被称为回归,但却是基于根据回归的分类,将因变量分为两类。逻辑回归用于预测二分类的输出。例如,如果信用卡公司构建一个模型来决定是否通过向客户的发行信用卡申请,它将预测客户的信用卡是否会“违约”。逻辑回归是一种非线性回归模型,相比于线性回归,它多了一个sigmoid函数(或称为Logistic函数)。Sigmoid 函数(S 函数)是一种具有 S 形曲线,逻辑回归是一种分类算法,主要用于二分类问题。

 优点:

(1)计算代价不高,容易理解实现。LR在时间和内存需求上相当高效。

(2LR对于数据中小噪声的鲁棒性很好,并且不会受到轻微的多重共线性的特别影响。

 缺点:

(1)容易欠拟合,分类精度不高。

2)数据特征有缺失或者特征空间很大时表现效果并不好。

 

Naive Bayes(朴素贝叶斯分类器)

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。

 优点: 在数据较少的情况下依然有效,可以处理多类别问题,接受大量数据训练,查询时具有高速度

 缺点: 难以满足输入特征之间相互独立的前提

  

参考资料:

1、https://mp.weixin.qq.com/s?__biz=Mzk0OTI1OTQ2MQ%3D%3D&chksm=c359b739f42e3e2f795ec2e9e6e1c36441446eb6ca51605360baf18b06f9fc42187122e513b7&idx=1&mid=2247494291&scene=21&sn=58272650ffd91f53007b34acb787b57b#wechat_redirect

2、https://blog.csdn.net/fengdu78/article/details/119951360

3、https://www.cnblogs.com/xiaofengzai/p/14295711.html?ivk_sa=1024320u

4、https://zhuanlan.zhihu.com/p/82114104

5、https://www.cnblogs.com/qiuyuyu/p/11399697.html

6、https://www.sohu.com/a/225585188_556060

7、https://baijiahao.baidu.com/s?id=1659794715861240774&wfr=spider&for=pc

8、https://my.oschina.net/u/2511129/blog/782201

 

posted on 2021-12-26 19:43  enhaofrank  阅读(3730)  评论(0编辑  收藏  举报

导航