每个数据科学家都应该知道的10种
机器学习方法
机器学习是研究和行业中的热门话题,并且一直在开发新的方法。该领域的速度和复杂性使得即使对于专家来说,也很难跟上新技术的发展,而且对于初学者来说可能不知所措。
为了使机器学习神秘化,并为那些对核心概念不熟悉的人提供学习路径,让我们看一下十种不同的方法,包括每种方法的简单描述,可视化和示例。
机器学习算法(也称为模型)是一种数学表达式,用于表示问题(通常是业务问题)中的数据。目的是从数据到洞察力。例如,如果在线零售商希望预期下一个季度的销售额,则可以使用机器学习算法,该算法根据过去的销售额和其他相关数据预测这些销售额。同样,风车制造商可能会目视监视重要设备,并通过经过训练以识别危险裂缝的算法来馈送视频数据。
所描述的十种方法提供了概述-以及您在磨练机器学习知识和技能时可以建立的基础:
回归
分类
聚类
降维
合奏方法
神经网络与
深度学习
转移学习
强化学习
自然语言处理
词嵌入
我们进入之前的最后一件事。让我们区分机器学习的两个一般类别:有监督的和无监督的。当我们具有要预测或解释的数据时,我们将应用监督的 ML技术。为此,我们使用输入和输出的先前数据来基于新输入预测输出。例如,您可以使用监督的ML技术来帮助想要预测下个月注册该服务的新用户数量的服务企业。相比之下,无监督 ML寻找无需使用目标变量进行预测就可以关联和分组数据点的方法。换句话说,它根据特征评估数据,并使用特征形成彼此相似的项目集群。例如,您可以使用无监督学习技术来帮助希望对具有相似特征的产品进行细分的零售商,而无需事先指定要使用的特征。
回归
回归方法属于监督的ML类别。它们有助于基于一组先验数据来预测或解释特定的数值,例如,基于类似财产的先前定价数据来预测财产的价格。
最简单的方法是线性回归,其中我们使用直线的数学方程(y = m * x + b)对数据集进行建模。我们通过计算一条线的位置和斜率来训练具有许多数据对(x,y)的线性回归模型,以最小化所有数据点和该线之间的总距离。换句话说,我们计算最接近数据中观测值的直线的斜率(m)和y轴截距(b)。
让我们考虑一个更具体的线性回归示例。我曾经使用线性回归通过汇总建筑物的使用年限,层数,平方英尺和墙面设备的数量来预测某些建筑物的能耗(千瓦时)。由于存在多个输入(年龄,平方英尺等),因此我使用了多变量线性回归。原理与简单的一对一线性回归相同,但是在这种情况下,我创建的“线”基于变量的数量出现在多维空间中。
下图显示了线性回归模型与建筑物实际能耗之间的拟合程度。现在,假设您可以使用建筑物的特征(年龄,平方英尺等),但是您不知道能耗。在这种情况下,我们可以使用拟合线来估算特定建筑物的能耗。
请注意,您还可以使用线性回归来估算有助于最终预测能耗的每个因素的权重。例如,一旦有了一个公式,就可以确定年龄,大小或身高是最重要的。
建筑物能耗的线性回归模型估计值(kWh)。
回归技术的范围从简单(如线性回归)到复杂(如正则线性回归,多项式回归,决策树和随机森林回归,
神经网络等)。但是请不要陷入困境:首先研究简单的线性回归,掌握技术,然后再继续前进。
分类
另一类监督的ML,分类方法可以预测或解释一个类的值。例如,他们可以帮助预测在线客户是否会购买产品。输出可以是“是”或“否”:买方或非买方。但是分类方法不限于两个类。例如,分类方法可以帮助评估给定图像是否包含汽车或卡车。在这种情况下,输出将是3个不同的值:1)图像包含汽车,2)图像包含卡车,或3)图像既不包含汽车也不包含卡车。
最简单的分类算法是逻辑回归-听起来像是回归方法,但事实并非如此。Logistic回归基于一个或多个输入来估计事件发生的可能性。
例如,逻辑回归可以将学生的两个考试分数作为输入,以估计该学生被某所大学录取的概率。因为估计是概率,所以输出是0到1之间的数字,其中1表示完全确定性。对于学生,如果估计的概率大于0.5,则我们预测他或她将被录取。如果估计的概率小于0.5,我们预计他或她将被拒绝。
下图显示了以前的学生的分数以及他们是否被录取。逻辑回归使我们能够画出代表决策边界的线。
Logistic回归决策边界:是否已上大学?
由于逻辑回归是最简单的分类模型,因此是开始分类的好地方。随着您的前进,您可以深入研究非线性分类器,例如决策树,随机森林,支持向量机和神经网络。
聚类
借助聚类方法,我们将其归为无监督ML类别,因为它们的目标是对具有相似特征的观察进行分组或聚类。聚类方法不使用输出信息进行训练,而是让算法定义输出。在聚类方法中,我们只能使用可视化来检查解决方案的质量。
最受欢迎的聚类方法是K-Means,其中“ K”代表用户选择创建的聚类数。(请注意,有多种选择K值的技术,例如弯头方法。)
大致来说,K-Means对数据点有何作用:
在数据中随机选择K个中心。
将每个数据点分配给随机创建的中心中最接近的一个。
重新计算每个群集的中心。
如果中心没有变化(或变化很小),则过程完成。否则,我们返回到步骤2。(如果中心不断变化,为防止最终陷入无限循环,请预先设置最大迭代次数。)
下一个图将K均值应用于建筑物的数据集。图中的每一列表示每栋建筑物的效率。这四个测量值与空调,插入式设备(微波炉,冰箱等),家用气体和加热气体有关。我们选择K = 2进行聚类,这样可以很容易地将一个聚类解释为高效建筑群,而将另一个聚类解释为低效率建筑群。在左侧您可以看到建筑物的位置,在右侧您可以看到我们用作输入的四个维度中的两个:插入式设备和燃气。
将建筑物分为高效(绿色)组和低效率(红色)组。
在探索聚类时,您将遇到非常有用的算法,例如基于密度的带噪应用空间聚类(DBSCAN),均值漂移聚类,聚集层次聚类,使用高斯混合模型的期望最大化聚类等。
降维
顾名思义,我们使用降维从数据集中删除最不重要的信息(有时是冗余列)。在实践中,我经常看到具有数百甚至数千列(也称为要素)的数据集,因此减少总数至关重要。例如,图像可以包含数千个像素,并非所有像素都对您的分析很重要。或者,在制造过程中测试微芯片时,您可能对每个芯片都进行了数千次测量和测试,其中许多提供了冗余信息。在这些情况下,您需要降维算法以使数据集易于管理。
最受欢迎的降维方法是主成分分析(PCA),该方法通过找到使数据线性变化最大化的新矢量来减少特征空间的维数。当数据的线性相关性很强时,PCA可以显着减小数据的维数,而不会丢失太多信息。(实际上,您还可以测量信息丢失的实际程度并进行相应调整。)
另一种流行的方法是t随机邻居嵌入(t-SNE),它可以进行非线性降维。人们通常使用t-SNE进行数据可视化,但您也可以将其用于机器学习任务,例如减少特征空间和聚类,仅举几例。
下图显示了对MNIST手写数字数据库的分析。MNIST包含数千个从0到9的数字图像,研究人员用来测试其聚类和分类算法。数据集的每一行都是原始图像的矢量化版本(尺寸28 x 28 = 784),每个图像都有一个标签(零,一,二,三,…,九)。请注意,因此我们将尺寸从784(像素)减少到2(可视化中的尺寸)。投影到二维可以使我们可视化高维原始数据集。
MNIST手写数字数据库上的t-SNE迭代。
合奏方法
想象一下,您决定制造一辆自行车是因为您对商店和在线商店提供的选项不满意。您可能首先要找到所需的每个零件中最好的一个。一旦组装了所有这些出色的零件,最终的自行车将胜过所有其他选择。
集成方法使用相同的想法,即结合多个预测模型(监督的ML)以获得比每个模型单独提供的质量更高的预测。例如,随机森林算法是一种集成方法,它结合了许多训练有数据集不同样本的决策树。结果,随机森林的预测质量高于使用单个决策树估计的预测质量。
将集成方法视为减少单个机器学习模型的方差和偏差的一种方法。这很重要,因为任何给定的模型在某些情况下可能都是准确的,但在其他情况下则是不准确的。在另一个模型中,相对精度可能会相反。通过结合这两种模型,可以平衡预测的质量。
Kaggle 比赛的绝大部分优胜者都使用某种合奏方法。最受欢迎的集成算法是Random Forest,XGBoost和LightGBM。
神经网络与深度学习
与被认为是线性模型的线性和逻辑回归相反,神经网络的目标是通过向模型中添加参数层来捕获数据中的非线性模式。在下图中,简单的神经网络具有四个输入,具有五个参数的单个隐藏层和一个输出层。
具有一层隐藏层的神经网络。
实际上,神经网络的结构足够灵活,可以构建我们众所周知的线性和逻辑回归。深度学习一词来自具有许多隐藏层的神经网络(请参见下图),并封装了多种架构。
跟上深度学习的发展尤其困难,部分原因是研究和行业界已加倍努力进行深度学习,每天都催生出全新的方法论。
深度学习:具有许多隐藏层的神经网络。
为了获得最佳性能,深度学习技术需要大量数据,并且需要大量计算能力,因为该方法可以在大型架构中自动调整许多参数。很快就清楚了,为什么深度学习从业人员需要功能强大的,配备GPU(图形处理单元)的计算机。
特别是,深度学习技术在视觉(图像分类),文本,音频和视频领域非常成功。深度学习最常用的软件包是Tensorflow和PyTorch。
转移学习
假设您是从事零售行业的数据科学家。您花了几个月的时间训练高质量的模型,以将图像分类为衬衫,T恤和polo。您的新任务是建立一个类似的模型,以将礼服的图像分类为牛仔裤,工装裤,便装和正装裤。您可以将内置在第一个模型中的知识转移到第二个模型中吗?是的,您可以使用转移学习。
转移学习是指重新使用先前训练过的神经网络的一部分,并使之适应新的但类似的任务。具体来说,一旦使用任务数据训练了神经网络,就可以转移一部分训练后的层,并将它们与可以使用新任务的数据进行训练的一些新层结合起来。通过增加几层,新的神经网络可以快速学习并适应新任务。
转移学习的主要优点是您需要较少的数据来训练神经网络,这尤其重要,因为深度学习算法的训练在时间和金钱(计算资源)方面都是昂贵的,当然,通常很难找到足够的标签数据进行培训。
让我们回到示例中,假设对于衬衫模型,您使用具有20个隐藏层的神经网络。经过几次实验,您意识到可以转移18个衬衫模型层,并将它们与一个新的参数层组合在一起以训练裤子图像。因此,裤子模型将具有19个隐藏层。这两个任务的输入和输出是不同的,但是可重复使用的层可能正在汇总与两者相关的信息,例如衣服方面。
转移学习已变得越来越流行,现在有许多可靠的预训练模型可用于常见的深度学习任务,例如图像和文本分类。
强化学习
想象一下迷宫中的一只老鼠试图寻找隐藏的奶酪块。我们将鼠标暴露于迷宫的次数越多,找到奶酪的能力就越强。起初,鼠标可能会随机移动,但是一段时间后,鼠标的经验有助于它意识到哪些动作使其更接近奶酪。
鼠标的过程反映了我们使用强化学习(RL)来训练系统或游戏的过程。一般来说,RL是一种机器学习方法,可以帮助代理从经验中学习。通过记录动作并在设定的环境中使用试错法,RL可以最大化累积奖励。在我们的示例中,鼠标是媒介,迷宫是环境。鼠标可能采取的动作是:向前,向后,向左或向右移动。奖励是奶酪。
当您几乎没有问题的历史数据时,可以使用RL,因为它不需要预先信息(与传统的机器学习方法不同)。在RL框架中,您可以随时从数据中学习。毫不奇怪,RL在游戏方面尤其成功,尤其是象棋和围棋之类的“ 完美信息 ” 游戏。借助游戏,来自代理和环境的反馈会很快出现,从而使模型可以快速学习。RL的缺点是,如果问题很复杂,则可能需要花费很长时间进行训练。
就像IBM的Deep Blue在1997年击败了最佳国际象棋选手一样,基于RL的算法AlphaGo在2016年也击败了最佳Go棋手。RL的当前先驱者是英国DeepMind的团队。有关AlphaGo和DeepMind的更多信息,请点击此处。
在2019年4月,OpenAI Five团队是第一个击败电竞Dota 2世界冠军团队的AI,这是OpenAI Five团队选择的非常复杂的视频游戏,因为没有RL算法可以赢得它时间。击败Dota 2冠军人类团队的同一支AI团队也开发了可以重新定位方块的机器人手。在此处阅读有关OpenAI Five团队的更多信息。
您可以说强化学习是AI的一种特别强大的形式,我们肯定会从这些团队那里看到更多的进步,但是也值得记住该方法的局限性。
自然语言处理
世界上很大比例的数据和知识是以某种人类语言表达的。您能想象能够在几秒钟内阅读和理解成千上万的书籍,文章和博客吗?显然,计算机还不能完全理解人类的文字,但是我们可以训练他们完成某些任务。例如,我们可以训练手机自动完成短信或纠正拼写错误的单词。我们甚至可以教机器与人进行简单对话。
自然语言处理(NLP)本身并不是一种机器学习方法,而是一种广泛使用的为机器学习准备文本的技术。想一想各种格式(文字,在线博客等)的大量文本文档。这些文本文档中大多数将充满错别字,缺少字符和需要过滤掉的其他单词。目前,最流行的用于处理文本的程序包是由斯坦福大学的研究人员创建的NLTK(自然语言工具包)。
将文本映射为数字表示形式的最简单方法是计算每个文本文档中每个单词的频率。想想一个整数矩阵,其中每一行代表一个文本文档,每一列代表一个单词。单词频率的这种矩阵表示形式通常称为术语频率矩阵(TFM)。从那里,我们可以通过将矩阵上的每个条目除以每个单词在整个文档主体中的重要性来确定权重,从而创建文本文档的另一个流行的矩阵表示形式。我们称此方法为术语频率逆文档频率(TFIDF),它通常在机器学习任务中效果更好。
词嵌入
TFM和TFIDF是文本文档的数字表示,仅考虑频率和加权频率来表示文本文档。相比之下,单词嵌入可以捕获文档中单词的上下文。使用单词上下文,嵌入可以量化单词之间的相似度,从而使我们可以对单词进行算术运算。
Word2Vec是一种基于神经网络的方法,可将语料库中的单词映射到数值向量。然后,我们可以使用这些向量查找同义词,对单词进行算术运算或表示文本文档(通过取文档中所有单词向量的均值)。例如,假设我们使用足够大的文本文档集来估计单词嵌入。我们还假设国王,皇后,男人和女人这两个词是语料库的一部分。假设vector('word')是表示单词'word'的数字矢量。为了估计vector('woman'),我们可以对vectors进行算术运算:
vector('king')+ vector('woman') — vector('man')?vector('queen')
带有词(向量)嵌入的算术运算。
单词表示允许通过计算两个单词的矢量表示之间的余弦相似度来找到单词之间的相似性。余弦相似度测量两个向量之间的角度。
我们使用机器学习方法来计算单词嵌入,但这通常是在顶部应用机器学习算法的第一步。例如,假设我们可以访问数千个Twitter用户的推文。还假设我们知道这些Twitter用户中的哪个买了房子。为了预测新的Twitter用户购买房屋的可能性,我们可以将Word2Vec与逻辑回归结合起来。
您可以自己训练单词嵌入,也可以获取一组预先训练的(转移学习)单词向量。要下载157种不同语言的预训练词向量,请查看FastText。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!