成为数据科学家应该知道的10种机器学习算法

了解为了成为数据科学家而应该了解的十种机器学习算法。

机器学习从业者有不一样的个性。虽然其中一些是“我是X专家,X能够训练任何类型的数据”,其中X =某种算法,其余人是“正确的工具用于正确的工做”的人。他们中的不少人还订阅了“各行各业的高手”的策略,他们拥有一个深厚的专业领域,而且对机器学习的不一样领域略有了解。也就是说,没有人能够否定这样一个事实:做为实践数据科学家,咱们必须了解一些常见机器学习算法的基础知识,这将有助于咱们处理咱们遇到的新域问题。这是常见机器学习算法的旋风之旅,以及有关它们的快速资源,能够帮助你开始使用它们。

Principal Component Analysis (PCA)/SVD

PCA是一种无监督的方法,用于理解由向量组成的数据集的全局属性。此处分析协方差数据点矩阵,以了解哪些维度(大多数)/数据点(有时)更重要(即,它们之间的差别很大,但与其余维度的协方差很小)。考虑矩阵的顶级PC的一种方法是考虑具备最高特征值的特征向量。SVD本质上也是一种计算有序份量的方法,可是你不须要获得点的协方差矩阵来获得它。
该算法经过获取降维数据点来帮助人们克服维数的困扰。

Libraries

入门教程

最小二乘法和多项式拟合

还记得你在大学里的数值分析课程,你曾经习惯用线条和曲线拟合获得方程式吗?对于维度较小的很是小的数据集,你可使用它们在机器学习中拟合曲线。(对于具备多个维度的大型数据或数据集,你可能最终会过分拟合,所以请不要打扰。)OLS具备封闭式的解决方案,所以你无需使用复杂的优化技术。
很明显,使用此算法来拟合简单的曲线/回归。

Libraries

入门教程

约束线性回归

最小二乘法可能会与数据中的异常值,虚假场和噪声混淆。所以,咱们须要约束来减小咱们在数据集上拟合的线的方差。正确的方法是拟合线性回归模型,以确保权重不会出错。模型能够具备L1范数(LASSO)或L2(岭回归)或二者(弹性回归)。平均平方损失获得优化。
使用这些算法来拟合带有约束的回归线,并避免从模型中过分拟合和掩盖噪声维度。

Libraries

入门教程

K-Means聚类

每一个人都喜欢无监督的聚类算法。给定一组矢量形式的数据点,咱们能够根据它们之间的距离制做点集。它是一种指望最大化算法,它迭代地移动集群的中心,而后逐个移动每一个集群中心的点。算法所采用的输入是要生成的簇的数量以及它将尝试聚合簇的迭代次数。

从名称中能够明显看出,你可使用此算法在数据集中建立K个群集。

Libraries

入门教程

Logistic回归

Logistic回归是受约束的线性回归,在应用权重后具备非线性(主要使用Sigmoid函数或者你也可使用tanh)应用,所以将输出限制为接近+/-类(在sigmoid的状况下为1和0)。使用Gradient Descent优化交叉熵损失函数。初学者须知:Logistic回归用于分类,而不是回归。你还能够将Logistic回归视为单层神经网络。使用梯度降低或L-BFGS等优化方法训练Logistic回归。NLP人员一般会将其命名为Maximum Entropy Classifier。
这就是Sigmoid的样子:
使用LR来训练简单但很是强大的分类器。

Libraries

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

入门教程

SVM(支持向量机)

SVM是线性模型,如线性/逻辑回归,不一样之处在于它们具备不一样的基于边缘的损失函数(支持向量的推导是我在特征值计算中看到的最美丽的数学结果之一)。你可使用L-BFGS甚至SGD等优化方法优化损耗函数。
SVM的另外一项创新是将数据内核用于特征设计。若是你有很好的领域洞察力,你能够用更智能的RBF内核替换旧的RBF内核并获利。
SVM能够作的一件独特事情是学习一个类分类器。
SVM可用于训练分类器(甚至是回归量)。

Library

入门教程

注意:基于SGD的Logistic回归和SVM训练均可以在 SKLearn中找到,我常用它,由于它让我能够用通用接口检查LR和SVM。你还可使用小批量在> RAM大小的数据集上训练它。

前馈神经网络

这些基本上是多层Logistic回归分类器。许多层的权重由非线性分开(sigmoid,tanh,relu + softmax和cool new selu)。另外一个流行的名字是Multi-Layered Perceptrons。FFNN可用做自动编码器的分类和无监督特征学习。
多层感知器
FFNN做为自动编码器
FFNN可用于训练分类器或提取特征做为自动编码器。

Libraries

入门教程

卷积神经网络(Convnets)

使用卷积神经网络几乎能够实现当今世界上任何最早进的基于视觉的机器学习结果。它们可用于图像分类,物体检测甚至图像分割。在80年代末期至90年代初由Yann Lecun发明的Convnets具备卷积层,可做为层次特征提取器。你也能够在文本中使用它们(甚至是图形)。
使用convnets进行最早进的图像和文本分类,对象检测,图像分割。

Libraries

入门教程

递归神经网络(RNN)

RNN经过在时间t递归地在聚合器状态上应用相同的权重集而且在时间t输入来给模型序列建模(给定序列有输入时间0..t..T,在每一个时间t具备隐藏状态这是从RNN的t-1步输出的。纯粹的RNN如今不多使用,但其对应物如LSTM和GRU在大多数序列建模任务中都是最早进的。
RNN(若是存在密集链接的单元和非线性,则如今f一般是LSTM或GRU)。LSTM单元用于代替纯RNN中的普通密集层。
将RNN用于任何序列建模任务,尤为是文本分类,机器翻译和语言建模。

Library:

github.com/tensorflow/…(谷歌的许多很酷的NLP研究论文都在这里)

入门教程

条件随机场(CRF)

CRF多是几率图形模型(PGM)系列中最经常使用的模型。它们用于像RNN同样的序列建模,也能够与RNN结合使用。在神经机器翻译系统出现以前CRF是最早进的,而且在许多序列标记任务中使用小数据集,它们仍然比须要更大量数据的RNN更好地学习。它们还能够用于其余结构化预测任务,如图像分割等.CRF对序列的每一个元素(好比句子)进行建模,使得邻居影响序列中组件的标签,而不是全部标签彼此独立。
使用CRF标记序列(在文本,图像,时间序列,DNA等中)。

Library:

入门教程

决策树

假设我给了一张Excel表格,上面有关于各类水果的数据,我必须说出苹果的外观。我要作的是问一个问题“哪些水果是红色和圆形的?”并将全部回答是和否的水果分开。如今,全部红色和圆形水果可能不是苹果,全部苹果都不会是红色和圆形的。因此我会问一个问题“哪些水果上有红色或黄色的暗示?“在红色和圆形的水果上,会问”哪些水果是绿色和圆形的?“不是红色和圆形的水果。基于这些问题,我能够准确地说出苹果。这一系列问题就是决策树。可是,这是一个基于个人直觉的决策树。直觉不能用于高维和复杂数据。咱们必须经过查看标记数据自动提出级联问题。这就是基于机器学习的决策树所作的事情。像CART树这样的早期版本曾经用于简单数据,但随着数据集愈来愈大,误差 - 方差权衡须要用更好的算法来解决。如今使用的两种常见的决策树算法是随机森林(在随机的属性子集上构建不一样的分类器并将它们组合用于输出)和Boosting Trees(将树木级联培训在其余树上,纠正下面的错误)他们)。
决策树可用于对数据点进行分类(甚至回归)。

Library

入门教程

TD算法

若是你仍然想知道上述任何方法如何解决像DeepMind那样击败Go世界冠军的任务,他们都不能。在此以前咱们讨论的全部10种算法都是模式识别,而不是策略学习者。要学习解决多步问题的策略,例如赢得国际象棋或玩Atari控制台,咱们须要让世界上没有代理人,并从其面临的奖励/惩罚中学习。这种类型的机器学习称为强化学习。最近在该领域取得的成功不少(并不是所有)是将Convnet或LSTM的感知能力与称为时间差别学习的一组算法相结合的结果。这些包括Q-Learning,SARSA和其余一些变体。
这些算法主要用于自动播放游戏,也用于语言生成和对象检测中的其余应用。

Library

入门教程

这些是你能够学习成为数据科学家的十种机器学习算法。
你还能够 在此处阅读有关机器学习库的 信息
更多文章欢迎访问: http://www.apexyun.com
公众号:银河系1号
联系邮箱:public@space-explore.com
(未经赞成,请勿转载)  
相关文章
相关标签/搜索