机器学习是一种利用数据进行预测或发现模式的方法,而不需要把每一条规则都手工写出来。在监督学习中,训练数据包含正确答案。在无监督学习中,训练数据不包含正确答案,因此目标是找出其中的结构,比如分组或主要变化方向。

这就是大多数机器学习基础概念背后的核心思想。你先从数据出发,选择一个模型,用样本训练它,然后检查它在新数据上的表现,而不是只看它在已经见过的数据上的效果。

机器学习能做什么

机器学习模型会把输入映射为输出或模式。输入可以是房屋面积、考试成绩、用户行为,或者图像中的像素值。输出取决于任务类型:

  • 预测一个数值,例如价格
  • 预测一个标签,例如垃圾邮件或非垃圾邮件
  • 在没有标签的情况下对相似项目分组
  • 对可能的选择进行排序或推荐

之所以称为“学习”,是因为模型参数是从数据中调整出来的,而不是完全由程序员预先固定。

监督学习与无监督学习

监督学习:预测已知目标

监督学习使用形如 (x,y)(x, y) 的样本,其中 xx 是输入,yy 是已知目标。

如果 yy 是数值,这类任务通常叫作回归。如果 yy 是类别,这类任务通常叫作分类

常见的监督学习算法包括线性回归、逻辑回归、决策树、随机森林、支持向量机和神经网络。没有任何一种方法在所有场景下都是最优的。正确的选择取决于数据规模、噪声水平、特征类型,以及你对可解释性的需求有多高。

无监督学习:在没有标签时发现结构

无监督学习使用输入 xx,但没有目标标签。

这里的目标通常是发现数据中本来就存在的结构。像 k-means 这样的聚类方法会尝试把相似的观测分到同一组。像主成分分析这样的降维方法会尝试用更少的方向来概括数据中的变化。

无监督学习可用于探索分析、压缩、异常检测或预处理。它的结果很大程度上取决于数据是如何表示的,以及方法内部采用了怎样的相似性定义。

一个简单的理解方式

可以把机器学习看成是在不确定性下进行曲线拟合或模式拟合。

你先选择一个模型族,比如直线、决策树,或者多层神经网络。然后在训练过程中,根据某个损失函数调整模型,使它的预测尽可能贴合训练数据。如果模型具有良好的泛化能力,它在从未见过的新数据上也会表现良好。

最后这一点非常重要。一个只会记住训练集的模型通常没有实际价值。

示例:用线性回归预测房租

假设你想根据公寓面积预测房租。一个简单的监督学习模型是

y^=b0+b1x\hat{y} = b_0 + b_1x

其中,xx 是面积,y^\hat{y} 是预测房租,b0b_0 是截距,b1b_1 是斜率。

假设拟合后的模型为

y^=500+2x\hat{y} = 500 + 2x

其中房租单位是美元,面积单位是平方英尺。

如果某套公寓的面积为 x=700x = 700,那么预测值是

y^=500+2(700)=1900\hat{y} = 500 + 2(700) = 1900

所以,模型预测房租为 19001900

这里有三个细节很重要。第一,模型是从带有面积和房租标签的样本中学到的。第二,这个预测是估计值,不是保证值。第三,只有当你关心的范围内“近似线性关系”是合理近似时,这个公式才有意义。

这个例子是刻意简化过的,但它抓住了监督学习的主要流程:使用带标签的数据、拟合参数,然后为新的输入预测目标值。

关键机器学习算法及其适用场景

线性回归

当目标是预测数值,而且直线近似可以作为一个合理的初始模型时,可以使用它。

逻辑回归

当任务是分类,并且你希望有一个相对简单、可解释的基线模型来预测“是或否”这类类别时,可以使用它。

决策树与随机森林

当关系是非线性的,或者变量之间存在交互作用时,尤其是在表格数据上,可以使用它们。随机森林通常会用一部分可解释性来换取更强的预测稳定性。

K-Means 聚类

在无监督学习中,如果你想把观测分成 kk 个簇,可以使用它。当你所使用的特征中,“簇中心”这一概念有实际意义时,它的效果最好。

神经网络

当输入与输出之间的关系非常复杂时,尤其是在图像、语音和语言任务中,可以使用它。与更简单的模型相比,它们通常需要更多数据和更多调参。

机器学习基础中的常见错误

混淆预测与解释

一个模型可能预测得很好,但仍然无法解释模式背后的真实原因。

忽视训练与测试的区别

训练准确率高,并不意味着模型在新数据上也会表现好。泛化能力必须在独立数据上进行检验。

使用错误的指标

在类别不平衡的分类问题中,准确率可能会产生误导。对于某些任务,精确率、召回率、平均绝对误差或其他指标可能更重要。

把算法名称当成效果保证

“神经网络”或“随机森林”并不意味着结果一定好。数据质量、特征设计、评估方式以及问题定义,至少和算法名称同样重要。

机器学习在什么时候有用

当模式过于复杂,无法用一小组固定规则描述,但又有足够的数据可供从样本中学习时,机器学习就很有用。常见应用包括推荐系统、欺诈检测、医学图像辅助工具、排序、预测以及文档分类。

但它并不总是最合适的工具。如果规则简单、稳定且完全已知,那么普通公式或确定性程序可能更好。

试试一个类似问题

拿一个小数据集,先问自己两个问题:“输入是什么?”以及“目标是什么?”如果这两个问题你都能回答,就可以尝试监督学习模型,比如线性回归或分类模型。如果不能回答,就可以探索数据是否会通过无监督方法自然形成分组。

如果你想再进一步,可以先用一个简单模型解决类似问题,再把它与更灵活的模型进行比较。通常,这比一开始就直接跳到最复杂的高级算法更能帮助你真正学会机器学习。

需要解题帮助?

上传你的问题,几秒钟内获得经过验证的分步解答。

打开 GPAI Solver →