机器学习技术

2025年6月18日 | 阅读 15 分钟

机器学习是一种数据分析技术,它教会计算机去做人类和动物天生就会做的事情:从经验中学习。机器学习算法利用计算方法直接从数据中“学习”,而不依赖于预先设定的方程作为模型。

随着可供学习的样本数量的增加,算法会不断适应以提高性能。深度学习是机器学习的一种特殊形式。

机器学习是如何工作的?

机器学习使用两种技术:监督学习,它在已知的输入和输出数据上训练模型以预测未来的输出;以及无监督学习,它利用输入数据中隐藏的模式或内部结构。

Machine Learning Techniques

监督学习

监督机器学习创建一个模型,该模型在存在不确定性的情况下基于证据进行预测。监督学习算法采用一组已知的输入数据和对数据的已知响应(输出),并训练一个模型来为新数据生成合理的预测响应。如果您有要估算的输出的已知数据,请使用监督学习。

监督学习使用分类和回归技术来开发机器学习模型。

分类模型对输入数据进行分类。分类技术预测离散响应。例如,电子邮件是真实的还是垃圾邮件,或者肿瘤是癌性的还是良性的。典型应用包括医学影像、语音识别和信用评分。

如果您的数据可以被标记、分类或划分为特定的组或类,则使用分类法。例如,应用于手写识别的分类法用于识别字母和数字。在图像处理和计算机视觉中,无监督模式识别技术用于对象检测和图像分割。

执行分类的常见算法包括支持向量机(SVM)、提升和装袋决策树、k-近邻、朴素贝叶斯、判别分析、逻辑回归神经网络

回归技术预测连续响应- 例如,温度变化或电力需求波动。典型应用包括电力负荷预测和算法交易。

如果您正在处理数据范围,或者您的响应性质是实数,例如温度或设备故障时间,则使用回归技术。

常见的回归算法包括线性、非线性模型、正则化、逐步回归、提升和装袋决策树、神经网络和自适应模糊学习

使用监督学习预测心脏病发作

医生想预测某人在一年内是否会发生心脏病发作。他们有先前患者的数据,包括年龄、体重、身高血压。他们知道先前的患者是否在一年内发生过心脏病发作。因此,问题在于将现有数据整合成一个模型,该模型可以预测新人在一年内是否会发生心脏病发作。

无监督式学习

在无监督学习数据中检测隐藏的模式或内部结构。它用于消除包含没有标记响应的输入数据的​​数据集。

聚类是一种常见的无监督学习技术。它用于探索性数据分析,以在数据中查找隐藏的模式和簇。聚类分析的应用包括基因序列分析、市场研究和商品识别。

例如,如果一家手机公司想优化他们建造基站的位置,他们可以使用机器学习来预测他们的基站有多少人。

一个手机一次只能与 1 个基站通话,因此该团队使用聚类算法来设计手机基站的良好布局,以优化其客户群或客户群的信号接收。

执行聚类的常见算法是k-均值k-中值、层次聚类、高斯混合模型、隐马尔可夫模型、自组织映射、模糊 C-均值聚类和减法聚类。

Machine Learning Techniques

描述了十种方法,它们是您可以用来改进机器学习知识和技能的基础。

  • 回归
  • 分类
  • 聚类
  • 降维
  • 集成方法
  • 神经网络和深度学习
  • 迁移学习
  • 强化学习
  • 自然语言处理
  • 词嵌入

让我们区分机器学习的两个一般类别:监督学习和无监督学习。当我们有一个想要预测或解释的数据时,我们应用监督 ML 技术。我们使用之前和输出数据来预测基于新输入的输出。

例如,您可以使用监督 ML 技术来帮助一个服务企业,该企业希望估算下个月将有多少新用户注册该服务。相比之下,非监督 ML 探讨了在不使用目标变量进行预测的情况下连接和分组数据点的方法。

换句话说,它根据特征评估数据,并使用特征将相似的对象分组。例如,您可以使用无监督学习技术来帮助零售商对具有相似特征的产品进行细分——而无需提前指定要使用哪些特征。

1. 回归

回归方法属于监督 ML 的范畴。它们根据先前的​​数据帮助预测或解释特定的数值,例如根据类似房产的过去定价数据预测资产价格。

最简单的方法是线性回归,其中我们使用直线方程(y = m * x + b)来建模数据集。我们通过计算最小化所有数据点与直线之间总距离的直线的位置和斜率,用多个数据对(x, y) 来训练线性回归模型。换句话说,我们计算最佳近似数据中观测值的直线的斜率 (M) 和 y 截距 (B)。

让我们来看一个更具体的线性回归例子。我曾用线性回归来预测一些建筑物的能源消耗(以kW 为单位),方法是收集建筑物的年龄、层数、平方英尺以及插入的墙壁设备数量。

由于有多个输入(年龄、平方英尺等),我使用了多元线性回归。原理与一对一线性回归类似。尽管如此,在这种情况下,“直线”是根据变量的数量发生在多维空间中的。

现在想象一下,您拥有建筑物的特征(年龄、平方英尺等),但您不知道能源消耗。在这种情况下,我们可以使用拟合的直线来估算特定建筑物的能源消耗。下图显示了线性回归模型在多大程度上拟合了建筑物实际的能源消耗。

请注意,您还可以使用线性回归来估算影响能源消耗最终预测的每个因素的权重。例如,一旦您有了一个公式,您就可以确定年龄、大小还是高度最重要。

Machine Learning Techniques

建筑能源消耗(kWh)的线性回归模型估算。

回归技术多种多样,从简单(线性回归)到复杂(正则线性回归、多项式回归、决策树、随机森林回归和神经网络)。但不要感到困惑:从研究简单的线性回归开始,掌握这些技术,然后继续前进。

2. 分类

在另一类监督 ML 中,分类方法预测或解释类值。例如,它们可以帮助预测在线客户是否会购买产品。输出可以是“是”或“否”:买家或非买家。但分类方法不仅限于两个类。例如,分类方法可以帮助评估给定图像是否包含汽车或卡车。最简单的分类算法是逻辑回归,它听起来像回归方法,但实际上不是。逻辑回归根据一个或多个输入估算事件发生的概率。

例如,逻辑回归可以根据学生的两个考试成绩来预测该学生将获得特定大学的录取。因为猜测是概率,所以输出是 0 到 1 之间的数字,其中 1 代表绝对确定。对于学生,如果预测的概率大于 0.5,我们估计他们将被录取。如果预测的概率小于 0.5,我们估计他们将被拒绝。

下图显示了过去学生的成绩以及他们是否被录取。逻辑回归允许我们绘制一条代表决策边界的线。

Machine Learning Techniques

因为逻辑回归是最简单的分类模型,所以它是分类的良好起点。随着您的进步,您可以深入研究非线性分类器,例如决策树、随机森林、支持向量机和神经网络等。

3. 聚类

聚类方法属于非监督 ML,因为它们旨在对具有相似特征的观测值进行分组或聚类。聚类方法不使用输出信息进行训练,而是让算法定义输出。在聚类方法中,我们只能使用可视化来观察解决方案的质量。

最流行的聚类方法是 K-Means,其中“K”代表用户选择的簇数。(请注意,有多种技术可用于选择 K 值,例如肘部法则。)

  • 随机选择数据中的 K 个中心。
  • 将每个数据点分配给最近的随机生成的中心。

否则,我们返回第 2 步。(为防止在中心持续变化时陷入无限循环,请提前设置最大迭代次数。)

如果中心不再变化(或变化很小),则过程结束。

下一个图将 K-Means 应用于建筑数据集。这四个测量值与空调、插入式电器(微波炉、冰箱等)、家用燃气和供暖燃气有关。图的每一列代表每个建筑物的效率。

Machine Learning Techniques

建筑能源消耗(kWh)的线性回归模型估算。

回归技术多种多样,从简单(线性)到复杂(正则线性、多项式、决策树、随机森林和神经网络)。但不要感到困惑:从研究简单的线性回归开始,掌握这些技术,然后继续前进。

Machine Learning Techniques

将建筑物聚类为高效(绿色)和低效(红色)组。

当您探索聚类时,您会遇到非常有用的算法,例如基于密度的噪声空间聚类(DBSCAN)、均值漂移聚类、凝聚层次聚类以及使用高斯混合模型的期望最大化聚类等。

4. 降维

我们使用降维来删除数据集中的不太重要的信息(有时是无关的列)。例如,图像可能由数千个像素组成,这些像素对您的分析不重要。或者,在制造过程中测试微芯片时,您可能对每个芯片有数千个测量和测试,其中许多提供冗余信息。在这些情况下,您需要降维算法来使数据集变得可管理。

最流行的降维方法是主成分分析(PCA),它通过寻找最大化数据线性方差的新向量来降低特征空间的维度。(您还可以测量信息丢失的程度并进行相应调整。)当数据的线性相关性很强时,PCA 可以在不丢失过多信息的情况下显著降低数据维度。

另一种流行的方法是 t-分布随机邻域嵌入(t-SNE),它最小化非线性维度。人们通常使用 t-SNE 进行数据可视化,但您也可以将其用于机器学习任务,例如特征空间缩减和聚类,仅举几例。

下一个图显示了手写数字 MNIST 数据库的分析。MNIST 包含数千张数字 0 到 9 的图像,研究人员使用这些图像来测试他们的聚类和分类算法。数据集中的每一行都是原始图像(大小 28 x 28 = 784)的向量版本,以及每个图像的标签(零、一、二、三、……、九)。因此,我们将维度从 784(像素)减少到 2(我们可视化中的维度)。投影到二维可以让我们可视化更高维度的原始数据集。

Machine Learning Techniques

5. 集成方法

想象一下,您决定自己组装自行车,因为您对商店和在线提供的选项不满意。一旦您组装好这些出色的零件,组装好的自行车将比其他所有选项都更耐用。

每种模型都使用结合多个预测模型(监督 ML)以获得比单个模型更高质量预测的相同思想。

例如,随机森林算法是一种集成方法,它结合了使用数据集不同样本训练的多个决策树。因此,随机森林的预测质量超过了单个决策树的预测质量。

考虑如何减少单个机器学习模型的方差和偏差。通过结合两个模型,预测的质量变得平衡。有了另一个模型,相对精度可能会颠倒。这很重要,因为任何给定模型在某些条件下可能是准确的,但在其他条件下可能不准确。

大多数 Kaggle 竞赛的顶级获胜者都使用某种集成方法。最流行的集成算法是随机森林、XGBoostLightGBM

6. 神经网络和深度学习

与被认为是线性模型的线性回归和逻辑回归不同,神经网络旨在通过向模型添加参数层来捕捉数据中的非线性模式。简单的神经网络有三个输入,如下图所示,一个带有五个参数的隐藏层和一个输出层。

Machine Learning Techniques

带隐藏层的神经网络。

神经网络的结构足够灵活,可以构建我们著名的线性回归和逻辑回归。深度学习一词来自具有许多隐藏层的神经网络,并包含各种架构。

随着研究和行业社区加倍努力进行深度学习,每天都会产生全新的方法,因此深度学习领域的发展尤其难以跟上。

Machine Learning Techniques

深度学习:具有多个隐藏层的神经网络。

深度学习技术需要大量数据和计算能力才能获得最佳性能,因为此方法会在庞大的架构中自动调整许多参数。很明显,为什么深度学习从业者需要带有 GPU(图形处理单元)的强大计算机。

特别是,深度学习技术在视觉(图像分类)、文本、音频和视频领域取得了空前的成功。深度学习最常用的软件包是 Tensorflow 和 PyTorch。

7. 迁移学习

假设您是一名在零售行业工作的数据科学家。您已经花了几个月的时间训练了一个高质量的模型来将图像分类为衬衫、T恤和 Polo 衫。您的新任务是创建一个类似的模型来分类裤子图像,如牛仔裤、工装裤、休闲裤和正装裤。

迁移学习是指重用已训练神经网络的一部分,并将其改编以用于新的但相似的任务。具体来说,一旦您使用某个任务的数据训练了神经网络,您就可以移动一部分已训练的层,并将它们与一些您可以用于新任务的新层结合起来。新的神经网络可以通过添加几层来快速学习和适应新任务。

迁移学习的优势在于您需要更少的数据来训练神经网络,这尤其重要,因为深度学习算法的训练在时间和金钱上都很昂贵。

迁移学习的主要优势在于您需要更少的数据来训练神经网络,这尤其重要,因为深度学习算法的训练在时间和金钱(计算资源)上都很昂贵。当然,找到足够的标记数据进行训练并不容易。

让我们回到您的例子,假设您为衬衫模型使用了一个具有 20 个隐藏层的神经网络。在进行了一些实验后,您发现您可以移动衬衫模型的 18 个层,并将它们与新的参数层结合起来,以在裤子图像上进行训练。

因此,裤子模型将有 19 个隐藏层。这两个函数的输入和输出不同,但可重用的层可以汇总与两者都相关的信息,例如面料方面。

迁移学习变得越来越受欢迎,现在有许多用于常见深度学习任务(如图像和文本分类)的具体预训练模型可用。

8. 强化学习

想象一只老鼠在一个迷宫中寻找隐藏的奶酪块。起初,老鼠可能会随机移动,但过了一段时间,老鼠的感知会帮助它感知哪些动作能让它更接近奶酪。我们将老鼠暴露在迷宫中的次数越多,它就越擅长找到奶酪。

老鼠的过程是指我们在强化学习(RL)中用于训练系统或游戏的内容。总的来说,RL 是一种机器学习方法,它帮助智能体从经验中学习。

RL 可以通过记录动作并使用试错方法在设定的环境中最大化累积奖励。在我们的例子中,老鼠是智能体,迷宫是环境。老鼠可能采取的行动集是:前进、后退、左移或右移。奖励是奶酪。

当您对某个问题几乎没有或根本没有历史数据时,您可以使用 RL,因为它不需要先验信息(与传统的机器学习方法不同)。在 RL 框架中,您会随着学习过程不断学习数据。毫不奇怪,RL 在游戏中特别成功,尤其是在“正确信息”游戏(如下棋和围棋)中。对于游戏,来自智能体和环境的反馈很快,使模型能够更快地学习。RL 的缺点是,如果问题很复杂,训练可能需要很长时间。

正如 IBM 的深蓝(Deep Blue)在 1997 年击败了人类国际象棋顶尖选手一样,基于 RL 的算法 AlphaGo 在 2016 年击败了围棋顶尖选手。RL 的当前先驱是英国 DeepMind 团队。

2019 年 4 月,OpenAI Five 团队是第一个击败电子竞技 Dota 2 世界冠军队的 AI,这是一个非常复杂电子游戏,OpenAI Five 团队选择它是​​因为没有 RL 算法能够赢得它。您可以说强化学习是一种特别强大的 AI 形式,我们当然希望看到这些团队取得更多进展。不过,也值得记住该方法的局限性。

9. 自然语言处理

世界上很大一部分数据和知识是以某种形式的人类语言存在的。例如,我们可以训练我们的手机自动完成短信或纠正拼写错误的单词。我们还可以教会机器与人类进行简单的对话。

自然语言处理(NLP)不是一种机器学习方法,而是一种广泛用于准备文本以进行机器学习的技术。考虑许多不同格式的文本文件(Word、在线博客)。这些文本文件中的大多数都会充满错别字、丢失的字符以及需要过滤掉的其他单词。目前,最流行的文本处理包是 NLTK(自然语言工具包),由斯坦福大学研究人员创建。

将文本映射到数值表示的最简单方法是计算每个文本文档中每个单词的频率。考虑一个整数矩阵,其中每一行代表一个文本文档,每一列代表一个单词。这种词频的矩阵表示通常称为词频矩阵(TFM)。通过将矩阵中的每个条目除以每个单词在整个文档语料库中的重要性权重,我们可以创建更流行的文本文档矩阵表示。我们称此方法为词频逆文档频率(TFIDF),它通常对机器学习任务效果更好。

10. 词嵌入

TFM 和 TFIDF 是文本文档的数值表示,它们仅考虑频率和加权频率来表示文本文档。相比之下,词嵌入可以捕获单词在文档中的上下文。与词上下文一样,嵌入可以衡量单词之间的相似性,从而允许我们对单词进行算术运算。

Word2Vec 是一种基于神经网络的方法,它将语料库中的单词映射到数值向量。然后,我们可以使用这些向量来查找同义词、对单词执行算术运算或表示文本文档(通过取文档中所有单词向量的平均值)。例如,我们使用足够大的文本文档语料库来估算词嵌入。

假设 vector('word') 是代表单词 'word' 的数字向量。为了近似('female')向量,我们可以执行向量算术运算。

vector('king') + vector('woman') - vector('man') ~ vector('queen')

Machine Learning Techniques

单词(向量)嵌入的算术运算。

单词表示允许通过计算两个单词向量表示之间的余弦相似度来查找单词之间的相似性。余弦相似度测量两个向量之间的角度。

我们使用机器学习方法计算词嵌入,但这通常是实现机器学习算法的前置步骤。例如,假设我们拥有数千名 Twitter 用户的推文。我们还假设我们知道哪些 Twitter 用户购买了房屋。为了估算新 Twitter 用户购买房屋的概率,我们可以将 Word2Vec 与逻辑回归结合起来。

您可以自己训练词嵌入,也可以获取预训练的(迁移学习)词向量集。要下载 157 种不同语言的预训练词向量,请查看 Fast Text。

总结

彻底研究这些方法并完全理解每种方法的基础知识,可以为进一步研究更高级的算法和方法提供坚实的基础。

没有最好的方法或一刀切的方法。找到合适的算法部分是反复试验——即使是经验丰富的数据科学家也无法在尝试之前判断一个算法是否会起作用。但算法选择也取决于您使用的数据的大小和类型,您想从数据中获得什么见解,以及这些见解将如何被使用。


下一主题自由度公式