5种常用的机器学习模型简介

机器学习模型中有许多种不同方法可以用来解决分类和回归问题。对同一个问题来说,这些不同模型都可以被当成解决问题的黑箱来看待。然而,每种模型都源自于不同的算法,在不同的数据集上的表现也各不相同。最好的方法是使用交叉比对的方式来决定在待测试数据上哪种模型的效果最好。在此尝试对每种模型的算法模式进行简要总结,希望能帮助你找着适合特定问题的解决方法。

常用机器学习模型

1.朴素贝叶斯模型

朴素贝叶斯模型是一个简单却很重要的模型,它是一种生成模型,也就是它对问题进行联合建模,利用概率的乘法法则,我们可以得到:

由于上述形式复杂,因此朴素贝叶斯作出一个假设,也就是在给定y的条件下,x1,...,xn之间的生成概率是完全独立的,也就是:

注意此处并不是说x1,...,xn的生成概率是相互独立的,而是在给定y的条件下才是独立的,也就是这是一种”条件独立”。了解概率图模型的同学,下面的图模型就可以很好地阐述这个问题:

既然我们说朴素贝叶斯是一种生成模型,那它的生成过程是怎样的呢?对于邮件垃圾分类问题,它的生成过程如下:

  • 首先根据p(y)采用得到y,从而决定当前生成的邮件是垃圾还是非垃圾
  • 确定邮件的长度n,然后根据上一步得到的y,再由p(xi|y)采样得到x1,x2,...,xn

这就是朴素贝叶斯模型。显然,朴素贝叶斯的假设是一种很强的假设,实际应用中很少有满足这种假设的的情况,因为它认为只要在确定邮件是垃圾或者非垃圾的条件下,邮件内容地生成就是完全独立地,词与词之间不存在联系。

朴素贝叶斯模型优、缺点

  • 优点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。
  • 缺点:对输入数据的表达形式很敏感。

2.决策树模型

决策树模型是一种简单易用的非参数分类器。它不需要对数据有任何的先验假设,计算速度较快,结果容易解释,而且稳健性强。

在复杂的决策情况中,往往需要多层次或多阶段的决策。当一个阶段决策完成后,可能有m种新的不同自然状态发生;每种自然状态下,都有m个新的策略可选择,选择后产生不同的结果并再次面临新的自然状态,继续产生一系列的决策过程,这种决策被称为序列决策或多级决策。

此时,如果继续遵循上述的决策准则或采用效益矩阵分析问题,就容易使相应的表格关系十分复杂。决策树是一种能帮助决策者进行序列决策分析的有效工具,其方法是将问题中有关策略、自然状态、概率及收益值等通过线条和图形用类似于树状的形式表示出来。

决策树模型就是由决策点、策略点(事件点)及结果构成的树形图,一般应用于序列决策中,通常以最大收益期望值或最低期望成本作为决策准则,通过图解方式求解在不同条件下各类方案的效益值,然后通过比较,做出决策。

决策树模型优、缺点

  • 优点:浅层的(Shallow)决策树视觉上非常直观,而且容易解释;是对数据的结构和分布不需作任何假设;是可以捕捉住变量间的相互作用(Interaction)。
  • 缺点:深层的(Deep)决策树视觉上和解释上都比较困难;决策树容易过分微调于样本数据而失去稳定性和抗震荡性;决策树对样本量(Sample Size)的需求比较大;处理缺失值的功能非常有限。

3.KNN算法

KNN即最近邻算法,核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。

该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。其主要过程为:

1.计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);

2. 对上面所有的距离值进行排序;

3. 选前k个最小距离的样本;

4. 根据这k个样本的标签进行投票,得到最后的分类类别;

如何选择一个最佳的K值,这取决于数据。一般情况下,在分类时较大的K值能够减小噪声的影响。但会使类别之间的界限变得模糊。一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。

近邻算法具有较强的一致性结果。随着数据趋于无限,算法保证错误率不会超过贝叶斯算法错误率的两倍。对于一些好的K值,K近邻保证错误率不会超过贝叶斯理论误差率。

KNN算法优、缺点

  • 优点:简单,易于理解,易于实现,无需估计参数,无需训练;理论成熟,既可以用来做分类也可以用来做回归;可用于非线性分类;适合对稀有事件进行分类;准确度高,对数据没有假设,对outlier不敏感。
  • 缺点:计算量大;样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);需要大量的内存;可理解性差,无法给出像决策树那样的规则。

4.SVM算法

SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。

SVM的主要思想可以概括为两点:

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

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

SVM算法优、缺点

  • 优点:可用于线性/非线性分类,也可以用于回归;低泛化误差;容易解释;计算复杂度较低。
  • 缺点:对参数和核函数的选择比较敏感;原始的SVM只比较擅长处理二分类问题。

5.logistic回归模型

logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等。

以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等。因此因变量就为是否胃癌,值为“是”或“否”,自变量就可以包括很多了,如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。然后通过logistic回归分析,可以得到自变量的权重,从而可以大致了解到底哪些因素是胃癌的危险因素。同时根据该权值可以根据危险因素预测一个人患癌症的可能性。

Logistic回归模型的适用条件:

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java