思享国logo
返回顶部

点赞数

1

回复数

1

被浏览

186

最受欢迎的十大机器学习算法-part2

2018-01-30 14:32更新
  • 热点聚焦

最受欢迎的十大机器学习算法-part1一文中,我们简单介绍了线性回归、逻辑回归、线性判别分析、分类和回归树以及朴素贝叶斯5种机器算法,本文将给大家介绍其余5种机器算法。

6-K-最近邻算法

K-最近邻算法是一种非常简单和有效。它的模型所表示是整个训练数据集,看上去很简单,对吧?

对于给定的训练数据,通过搜索整个数据集中K个最相似的实例(邻居),汇总这K个实例的输出变量可以预测新的数据点。对于回归问题,它可能是输出变量的平均值;对于分类问题,它可能是模式(或最常见的)类别值。

使用K-最近邻算法的诀窍,是在于如何确定数据实例之间的相似性。最简单的方法,如果你的属性在欧几里德距离上尺度相同(例如均以英寸为单位),那么基于每个输入变量之间的差异,你就可以直接计算其数值来确定相似性。

6

K-最近邻算法可能需要大量的内存或存储空间来储存所有数据,但只有在预测时才会执行计算(或学习)。你也可以随时更新和管理你的训练实例,以保持预测的准确性。

距离或紧密度的概念在非常高的维度(大量的输入变量)中可能会失效,因为输入变量的数量对于算法性能有着很大的负面影响。这就是维度灾难。这就要求你只使用那些与预测输出变量最相关的输入变量。

7 - 学习向量量化

K-最近邻算法的一个缺点是你需要使用整个训练数据集。而作为人工神经网络,学习向量量化算法(简称LVQ)允许你选择训练实例的数量,并能准确地学习这些实例所应有的特征。

7

学习向量量化算法所表示的是码本向量的集合。这些向量在初始化的时候随机选择出来,并在学习算法的多次迭代中优化成最能概括训练数据集的集合。在学习完成后,码本向量可以像K-最近邻算法一样进行预测。通过计算每个码本向量和新数据实例之间的距离来找到最相似的邻居(最佳匹配码本向量),然后返回最佳匹配单元的类别值或(在回归情况下的实际值)作为预测。如果能重新调整数据使其处于相同的区间(如0到1之间),则可以获得最佳的预测结果。

如果K-最近邻算法在你的数据集上已经给出了很好的预测结果,那么可以尝试用学习向量量化算法来减少整个训练数据集的内存存储需求。

8 - 支持向量机

支持向量机可能是最受欢迎、讨论最为广泛的机器学习算法之一。

超平面是输入变量空间内的一条分割线。在支持向量机中,超平面可以通过类别(0类或1类)最佳分割输入变量空间。在二维空间内,超平面可被视为一条线,我们假设所有的输入点都可以被该线完全分开。支持向量机的目标是找到一个分离系数,让一个超平面能够对不同类别的数据进行最佳分割。

8

超平面与最近的数据点之间的距离被称为边距。在分离两个类上具有最大边距的超平面被称为最佳超平面。超平面的确定只跟这些点及分类器的构造有关。这些点被称为支持向量,它们支持并定义超平面。在实践中,可以使用优化算法来找到能够最大化边距的系数。

支持向量机可能是最为强大的“开箱即用”分类器之一,值得你尝试。

9 - bagging算法和随机森林

随机森林是最流行、最强大的机器学习算法之一。它是一种被称为Bootstrap Aggregation或Bagging的机器学习集成算法。

Bootstrap是一种从数据样本中估算数量的强大统计方法。换句话说,你需要抽取大量的数据样本、计算平均值,然后再计算所有均值的平均,以便更好地估计整体样本的真实平均值。

bagging算法也使用相同的方式,但用于估计整个统计模型的最常见方法是决策树。训练数据中的多个样本将被取样,然后对每个数据样本建模。对新数据进行预测时,每个模型都会进行预测,并对每个预测结果进行平均,以更好地估计真实的输出值。

9

随机森林是对bagging算法的一种调整,它不是选择最佳分割点来创建决策树,而是通过引入随机性来得到次优分割点。

因此,针对每个数据样本所创建的模型,会与其他方式有所不同,但仍能以其独特和不同的方式准确预测。结合所有模型的预测,可以更好地估计潜在的真实输出。

如果用方差较高的算法(如决策树)能够获得较好的结果,那么通过bagging算法通常可以获得更好的结果。

10 - Boosting和AdaBoost算法

Boosting是一项从多个弱分类器中构建强分类器的集成预测技术。它从训练数据中构建模型,然后通过修正前一个模型的错误创造出第二个模型。以此类推,模型不断叠加,直至能够完美预测训练数据集,或达到可添加的模型的数量上限。

在针对二元分类所开发的boosting算法中,AdaBoost是第一个成功的。它是理解boosting算法的最佳起点。现代boosting方法基于AdaBoost而构建,最典型的例子是随机梯度加速器。

10

通常,AdaBoost算法与决策树一起工作。第一个决策树创建后,决策树在每个训练实例上的性能,都被用来衡量下一个决策树针对该实例所应分配的关注程度。难以预测的训练数据被赋予更大的权重,而容易预测的数据则被赋予更小的权重。模型依次被创建,每次更新训练实例的权重,都会影响到序列中下一个决策树学习性能。所有决策树完成后,即可对新输入的数据进行预测,而每个决策树的性能将由它在训练数据上的准确度所决定。

由于模型注意力都集中于纠正上一个算法的错误,所以必须确保数据是干净无异常的。

我们常常会被眼花缭乱的机器学习算法困扰,产生“我该使用哪种算法?”这样的问题。此问题的答案取决于许多因素,包括:

(1)数据的大小、质量和性质; 

(2)可用的计算时间; 

(3)任务的紧迫性; 

(4)你想要用数据来做什么。

即使是一位经验丰富的数据科学家,在尝试不同的算法之前,也无法回答哪种算法的性能会是最好的。机器学习的算法还有很多,但以上这些是最受欢迎的算法。如果你刚入门机器学习,这将是一个很好的学习起点。


您尚未登录, 登入  或  注册  后可查看全部

宝推人

  • 陈王奋起

回复区