首页/ 学科题库/ 机器学习/ 机器学习入门:基本概念与三类学习范式一次讲清
机器学习 实战教程

机器学习入门:基本概念与三类学习范式一次讲清

2026-09-23 约 7 分钟 juanwangdev

机器学习入门:基本概念与三类学习范式一次讲清

一句话结论:机器学习是让程序从数据中自动归纳规律并对新样本做预测的方法体系,按训练数据是否有标签分为监督、无监督与强化三类学习范式。

机器学习基本概念与学习范式

是什么

机器学习是让程序从数据中自动归纳规律、并对新样本做出预测的方法体系,它把"人写规则"替换成"用数据拟合一个带参数的映射函数"。按训练数据有没有标签,主流范式分为监督学习、无监督学习和强化学习三类。

解决什么问题

机器学习解决的是规则无法穷举、且规则会随数据分布漂移的问题。垃圾邮件识别就是典型例子:关键词黑名单要人工维护且很快失效;用历史邮件训练分类模型,规则由数据自动给出,分布变化时重新训练即可。推荐排序、风控评分、销量预测这类"输入输出关系复杂但样本充足"的任务,都属于机器学习的主场。

为什么这样做

把问题抽象成"假设空间 + 损失函数 + 优化算法"三段式,是为了让"学得好不好"变成可计算、可比较的数值问题。

  • 假设空间决定模型能表达什么:线性模型只能画直线,树模型表达分段常数,神经网络逼近复杂非线性。
  • 损失函数把"预测错了多少"量化成一个标量:分类常用交叉熵,回归常用均方误差。
  • 优化算法在假设空间里搜索使损失最小的参数,最常用的是梯度下降。

划分训练集、验证集、测试集则是为了回答"模型在没见过的数据上表现如何"。只看训练误差会奖励"背答案",这正是过拟合的来源:验证集用于选超参数,测试集只在最后评估一次。

三类范式的取舍依据是标签成本:有标签用监督学习;没有标签但想发现结构用无监督学习;只有延迟反馈、且决策会影响后续状态时用强化学习。

怎么用

用 scikit-learn 跑通最小监督学习流程,注意先划分再训练:

Python
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, roc_auc_score

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y)

clf = LogisticRegression(max_iter=1000).fit(X_train, y_train)
proba = clf.predict_proba(X_test)[:, 1]

print('accuracy =', accuracy_score(y_test, clf.predict(X_test)))
print('auc      =', roc_auc_score(y_test, proba))

要点:train_test_split 必须在任何特征统计(标准化、填充)之前调用,否则训练集信息会通过统计量泄漏进测试集;分类任务加 stratify=y 保持正负样本比例。

常见坑

  • 现象:测试集表现远好于线上表现。原因:用了全量数据统计特征,造成数据泄漏。处理:先切分,再只用训练集拟合标准化器与填充器。
  • 现象:准确率 99% 但业务方说模型没用。原因:正负样本极度不平衡,准确率被多数类主导。处理:改用精确率、召回率、F1 或 AUC。
  • 现象:反复调参后指标虚高。原因:测试集被当成验证集反复使用。处理:调参只看验证集,测试集只评估一次。
  • 现象:训练集上都收敛不了。原因:特征量纲差异过大或学习率不合适。处理:标准化特征,检查学习率与迭代次数。

要点总结

  • 机器学习是用数据拟合映射函数,而不是人工穷举规则。
  • 监督学习需要标签,无监督学习发现数据结构,强化学习依赖延迟奖励与交互。
  • 假设空间、损失函数、优化算法是建模的三段式,共同决定效果上限与收敛路径。
  • 数据必须先切分再做特征统计,否则一定发生数据泄漏。
  • 训练误差低不等于泛化好:验证集选参,测试集只评一次。
  • 类别不平衡时不要只看准确率,优先看 F1 与 AUC。

常见问题

监督学习和无监督学习的区别是什么?

监督学习的训练数据带标签,模型学的是从特征到标签的映射,用于分类与回归;无监督学习的训练数据没有标签,模型学的是数据自身的结构,用于聚类、降维与异常检测。

机器学习为什么必须划分测试集?

训练误差低不代表泛化能力强。测试集评估的是模型在没见过的新数据上的表现,能暴露过拟合;如果把测试集用于调参,评估结果就会偏高失真。

样本量少的时候应该先做什么?

优先用交叉验证替代简单切分,同时降低模型复杂度、加强正则化,并检查是否存在数据泄漏,避免用未来信息或标签信息构造特征。

想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App