监督学习是利用带标签数据训练模型以预测新样本的方法,核心是学习特征到标签的映射关系,典型任务包括分类与回归,常用scikit-learn实现并需综合评估指标与数据质量。

监督学习是让模型从带标签的数据中学会预测的关键方法。核心就一点:给它看足够多的“问题+正确答案”组合,它就能慢慢摸清规律,遇到新问题时给出靠谱答案。
什么是监督学习?先搞懂这个基础
监督学习就像教孩子认水果——你指着苹果说“这是苹果”,指着香蕉说“这是香蕉”,重复多次,孩子下次看到没标名字的苹果也能认出来。在Python里,“苹果”“香蕉”就是标签(label),图片或数据特征就是输入(feature)。模型的任务,就是学出 feature → label 的映射关系。
常见任务包括:
- 分类(Classification):预测离散类别,比如垃圾邮件识别、手写数字识别
- 回归(Regression):预测连续数值,比如房价预估、气温预测
用scikit-learn跑通第一个监督模型
不用从头造轮子,scikit-learn 提供了成熟又易上手的接口。以经典的鸢尾花(Iris)分类为例:
立即学习“Python免费学习笔记(深入)”;
- 加载数据:
from sklearn.datasets import load_iris,它自带特征(花萼/花瓣尺寸)和真实标签(三种花名) - 划分数据:用
train_test_split把数据拆成训练集(用来教模型)和测试集(用来考模型) - 选模型:比如
from sklearn.ensemble import RandomForestClassifier - 训练:调用
model.fit(X_train, y_train) - 验证:用
model.predict(X_test)得到预测结果,再和真实标签比对算准确率
别只看准确率——评估模型得更细一点
尤其在类别不均衡时(比如99%正常交易+1%诈骗),准确率可能虚高。这时候要看:
- 混淆矩阵:看清每个类别的预测对了多少、错在哪一类
- 精确率(Precision):模型说“是诈骗”的那些样本里,真诈骗占多少
- 召回率(Recall):所有真实诈骗中,模型抓出了多少
- F1分数:Precision 和 Recall 的调和平均,适合综合打分
scikit-learn 用 classification_report(y_true, y_pred) 一行就能输出全部指标。
模型效果不好?先检查这三件事
不是模型越复杂越好,很多问题出在前期准备:
- 标签质量:人工标注有没有错误?同一类样本是否真的相似?
- 特征表达:原始数据能不能直接喂给模型?比如日期要转成“星期几”“是否节假日”,文本要转成向量(TF-IDF 或词嵌入)
- 数据分布:训练集和未来真实数据是不是同源?如果训练用北上广数据,却去预测县城场景,效果大概率会崩
简单模型(如逻辑回归、决策树)往往比复杂模型更容易诊断问题,建议从它起步。










