机器学习新手十大算法之旅

姓名:谢童  学号:16020188008  转自微信公众号  Bigquant

在机器学习中,有一个叫做 “ 无免费午餐 ” 的定理(NFL)。简而言之,我们无法找到一个放之四海而皆准的最优方案,这一点对于监督学习(即预测建模)尤为重要。

例如,你不能说神经网络总是比决策树好,反之亦然。因为其中有很多因素在起作用,比如数据集的大小和结构。

因此,您应该针对您的问题尝试多种不同的算法,同时,保留一组数据,即“测试集”来评估性能并选择优胜者。

当然,您尝试的算法必须适合您的问题,所以需要选择正确的机器学习任务。打个比方,如果你需要打扫房子,你可能会用吸尘器、扫帚或拖把,但你不会拿出铲子开始挖掘。

大原则

在所有监督机器学习算法的基础上,有一个共同的原则。

机器学习算法被描述为学习一个目标函数(f),它最好地将输入变量(X)映射到输出变量(Y): Y = f(X)

这是一项通用的学习任务,即我们想在给出新的输入变量(X)后预测(Y),但我们不知道函数(f)是什么样子或者它的形式,不然我们就会直接使用它,而不需要使用机器学习算法从数据中学习了。

最常见的机器学习类型是学习映射Y = f(X)来为新的X做出Y的预测。这被称为预测建模或预测分析,我们的目标是使最准确的预测成为可能。

对于渴望了解机器学习基本原理的机器学习新手来说,这里有一个关于数据科学家使用的10种机器学习算法的鸟瞰。

1.线性回归

线性回归可能是统计学和机器学习中最著名和最容易理解的算法之一。

预测建模主要关注的是最小化模型的误差,以牺牲可解释性为代价使最准确的预测成为可能。我们借鉴各种的领域的算法来处理统计数据以达到预测目的。

线性回归的表示是一个方程,它描述了一条线,通过寻找输入变量系数(B)的特定权重,拟合输入变量(x)和输出变量(y)之间的关系。

例如:y = B0 + B1 * x

我们将在给定输入x的情况下预测y,线性回归学习算法的目标是找到系数B0和B1的值。 可以使用不同的技术从数据中学习线性回归模型,如普通最小二乘的线性代数解和梯度下降优化。

线性回归已经有200多年的历史了,并被广泛研究。在使用此技术时,一些很好的经验法则是删除非常相似(相关)的变量,并尽可能从数据中删除噪声。这是一种快速简单的技术,也是一种很好的算法。

2.逻辑回归

逻辑回归是机器学习在统计学领域借鉴的另一种技术。它是二进制分类问题(具有两个类值的问题)的首选方法。

逻辑回归就像线性回归,目标是找到每个输入变量的系数的值。与线性回归不同的是,输出的预测是用一个叫做logistic函数的非线性函数进行转换。

逻辑函数看起来像一个大S,它会将任意值转换到0到1的范围。这很有用,因为我们可以将一个规则应用于逻辑函数的输出以将值压缩到0和1(例如IF小于0.5然后输出0)并预测一个类值。

由于模型的学习方式,逻辑回归的预测也可以作为属于0类或1类的给定数据实例的概率。这对于需要为预测提供概率解释的问题很有用。

与线性回归一样,当您删除与输出变量无关的属性以及彼此非常相似(相关)的属性时,逻辑回归确实更有效。这是一个快速有效地学习二分类问题的模型。

3.线性判别分析

逻辑回归是一种传统上仅局限于两类分类问题的分类算法。如果你有两个以上的类,那么线性判别分析算法是首选的线性分类技术。

LDA的表示非常直接。它包括数据的统计属性,为每个类计算。对于单个输入变量,包括:

每个类别的均值

每个类别的方差

通过计算每个类的判别值,并对具有最大值的类进行预测。该技术假定数据具有高斯分布(钟形曲线),因此最好事先从数据中删除异常值。这是一种简单而有效的分类预测建模方法。

4.分类和回归树

决策树是一种重要的预测建模算法。

决策树模型用二叉树来表示,二叉树来自于算法和数据结构。每个节点代表一个输入变量(x)和该变量上的分裂点(假设变量是数值)。

树的叶节点包含一个输出变量(y),用于进行预测。过程是遍历树的分叉直到到达叶节点并在该叶节点上输出类值。

树的学习速度很快,预测的速度也很快。它们通常适用于广泛的问题,不需要对数据进行任何特殊的准备。

5.朴素贝叶斯

朴素贝叶斯(Naive Bayes)是一种简单但功能惊人的预测建模算法。

该模型由两种可以直接从训练数据中计算的概率组成: 1) 每个类的概率; 2) 给定每个x值后每个类的条件概率。 

一旦计算出概率模型,就可以用贝叶斯定理对新数据进行预测。当你的数据是实值时,通常假设一个高斯分布(钟形曲线),这样你就可以很容易地估计这些概率。

朴素贝叶斯之所以称“朴素”,是因为它假设每个输入变量是独立的。这对于真实数据来说是一个很强的、不切实际的假设,然而,该技术对于大量复杂问题非常有效。

6.K近邻

KNN算法非常简单和有效。通过对K个最相似的实例(邻居)对整个训练集进行搜索并汇总这些K个实例的输出变量,可以对一个新的数据点进行预测。

对于回归问题,它可能是平均输出变量,对于分类问题,可能是模型(或最常见)类值。

关键在于如何确定数据实例之间的相似性。如果您的属性都具有相同的比例(例如,以英寸为单位),最简单的技术是使用欧几里得距离,您可以根据每个输入变量之间的差异直接计算该数字。

KNN可能需要大量内存或空间来存储所有数据,但只在需要预测时才进行计算(或学习)。您还可以随着时间的推移更新和策划您的训练实例,以保持预测准确。

当维数提高时,空间的体积提高得很快,因而可用数据变得很稀疏,这会对算法的性能产生负面影响。这被称为维度灾难。故建议您只使用那些与预测输出变量最相关的输入变量。

7.学习矢量量化

k近邻的一个缺点是您需要挂载整个训练数据集。学习向量量化算法(或简称LVQ)是一种人工神经网络算法,它允许您选择要挂载的训练实例。

LVQ的表示是一组码本向量(codebook vector),这些都是在开始时随机选择的,并根据学习算法的多次迭代对训练数据集进行最佳的总结。

在学习之后,码本向量可以用来做出像k近邻那样的预测。通过计算每个码本向量和新数据实例之间的距离,可以找到最相似的邻(最佳匹配的码本向量)。

然后返回最佳匹配单元的类值(或回归时的真实值)作为预测。如果您重新缩放数据,使其具有相同的范围(如0到1之间),则可获得最佳结果。

如果您发现KNN在您的数据集上表现良好,请尝试使用LVQ来减少存储整个训练数据集的内存需求。

8.支持向量机

支持向量机(Support Vector Machines)可能是最流行和最受关注的机器学习算法之一。

超平面是分割输入变量空间的线。在SVM中,通过选择一个超平面,并根据输入变量空间中的类(类0或类1),来最好地分离输入变量空间中的点。

在二维中,你可以把它想象成一条直线,并假设所有的输入点都可以被这条直线分开。

支持向量机学习算法通过超平面的方法,找出使得类间达到最佳分离的系数。

超平面与最近的数据点之间的距离称为边距,能够将两个类分离得最好的或最优的超平面是具有最大边距的那条线,它是由几个关键点决定的,这些点与定义超平面和构造分类器直接相关,被称为支持向量。

SVM可能是最强大的开箱即用分类器之一,非常值得在您的数据集中进行这样的尝试。

9.装袋和随机森林

随机森林是最流行和最强大的机器学习算法之一。它是一种称为引导聚集算法(Bootstrap Aggregation)或装袋(Bagging)的集成机器学习算法。

Bootstrap是一种强大的统计方法,比如求平均值,您可以从数据样本中均匀有放回地取出一部分求平均值,然后把得到的平均值再求一个平均,这样可以更好地估计真实平均值。

在装袋(Bagging)中,用到同样的方法,装袋法并不仅适用于决策树,但对决策树尤其有用,从训练数据中抽多个样本,然后为每个数据样本构建模型。

当您需要对新数据进行预测时,每个模型都会进行预测,并对预测进行平均,以便更好地估计真实的输出值。

随机森林是这种方法的一个改进,在这种方法中,创建决策树,以便通过引入随机性来进行次优分割,而不是选择最佳分割点。

因此,为每个数据样本创建的模型与其他情况下的模型更加不同,但仍然精确。将预测结果结合起来,可以更好地估计潜在结果的真实值。

如果您使用具有高方差的算法(如决策树)得到不错的结果,那么您通过装袋算法通常可以得到更好的结果。

10.提升和自适应增强

Boosting是一种集成技术,试图从多个弱分类器中创建强分类器。通过从训练数据构建一个模型,然后创建第二个模型试图纠正第一个模型中的错误。

不断添加模型,直到训练集被完美地预测或者添加到最大数量。

AdaBoost是第一个为二分类开发的真正成功的提升算法。

现代boosting方法建立在AdaBoost上,最著名的是随机梯度提升机(stochastic gradient boosting machines)。

AdaBoost用于短决策树。创建第一棵树之后,使用树在每个训练实例上的性能来得到一个权重,决定下一棵树对每个训练实例的注意力。

难以预测的训练数据被赋予更多权重,而易于预测的实例被赋予更少的权重。

模型是一个接一个地顺序创建的,每个模型更新训练实例上的权重,这些权重影响序列中下一个树所执行的学习。构建完所有树之后,将对新数据进行预测。

因为着重于修正算法的错误,所以重要的是提前清洗好数据,去掉异常值。

最后

当一个初学者面对各种各样的机器学习算法时,一个典型的问题是 “ 我应该使用哪种算法? ” 问题的答案因许多因素而异,包括:(1) 数据的大小、质量和性质;(2) 可用计算时间;(3) 任务的紧迫性;(4) 你想对数据做什么。

即使是经验丰富的数据科学家,在尝试不同的算法之前,也无法判断哪种算法的性能最好。虽然有许多其他的机器学习算法,但以上这些是最流行的。

如果你是机器学习的新手,开始尝试以上的算法将是一个很好的起点。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容

  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,507评论 4 65
  • 0.前言## 机器学习[Machine Learning]在当今社会的火热程度有目共睹,自己也一直想写一下自己对M...
    城市中迷途小书童阅读 1,145评论 0 7
  • 文|王晓彤 “梦里回到唐朝,忆昔开元喧盛日。天下朋友结交情,眼界无穷世界宽”。五一小长假,又回到了我日思夜念的故乡...
    彤话坊阅读 753评论 4 3
  • 今天忽然的雨,刚好站在外头,还好头顶有遮雨的铁皮,不然可真是要成落汤鸡。最近总是晚下班的,但还是去了,越接近越是害...
    YSHSKL阅读 70评论 0 0
  • OKR 是管理者和团队每个季度设定颇具雄心,可衡量的目标的一个过程。从谷歌最开始创业的时候,OKR 就是其领导者管...
    chenpro阅读 478评论 0 1