在研究了目标是预测连续数值的回归问题之后,我们现在转向分类。在分类任务中,目标根本不同:我们旨在将每个输入数据点分配到几个预设的、不同的类别或类中的一个。分类是机器学习中的一项任务,目标变量 $y$ 是离散的,属于一个有限的标签集。例如,一封电子邮件可能被归类为 {垃圾邮件, 非垃圾邮件},一个肿瘤可能被诊断为 {良性, 恶性},或者一个客户交易可能被标记为 {欺诈, 非欺诈}。这些是二元分类的例子,其中只有两种可能的结果。分类问题也可以涉及两个以上的类别。这被称为多类别分类。例子包括:识别手写数字 ({0, 1, 2, ..., 9})。将新闻文章分类为主题 ({体育, 科技, 政治, 商业})。对动物图片进行分类 ({猫, 狗, 鸟, 鱼})。分类的目标形式上,给定一个包含输入特征 $X$ 和相应类别标签 $y$ 的数据集,分类算法(常被称为分类器)的目标是学习一个映射函数 $f$。该函数将新的、未见过的数据点的特征 $X$ 作为输入,并预测其类别标签 $\hat{y}$:$$ \hat{y} = f(X) $$其中 $\hat{y}$ 属于预设的可能类别集合 $C = {c_1, c_2, ..., c_k}$。分类器本质上是在特征空间中学习一个决策边界,以分离不同的类别。从视觉上看差异:回归旨在拟合一条穿过数据点的线或曲线,而分类旨在找到数据点组之间的边界。{"layout": {"title": "比较:回归与分类", "xaxis": {"title": "特征 1"}, "yaxis": {"title": "特征 2 / 目标值"}, "shapes": [{"type": "line", "x0": 0, "y0": 1, "x1": 10, "y1": 8, "line": {"color": "#1c7ed6", "width": 3}, "name": "回归线"}, {"type": "line", "x0": 5, "y0": 0, "x1": 5, "y1": 10, "line": {"color": "#f03e3e", "width": 3, "dash": "dash"}, "name": "分类边界"}], "annotations": [{"x": 7, "y": 7.5, "text": "回归模型", "showarrow": false, "font": {"color": "#1c7ed6"}}, {"x": 7.5, "y": 2, "text": "分类边界", "showarrow": false, "font": {"color": "#f03e3e"}}]}, "data": [{"x": [1, 2, 3, 4, 5, 6, 7, 8, 9], "y": [1.5, 2.5, 2, 4, 4.5, 5.5, 7, 7.5, 9], "mode": "markers", "type": "scatter", "name": "回归数据", "marker": {"color": "#1c7ed6", "size": 8}}, {"x": [1, 2, 2.5, 3, 1.5, 3.5, 4, 4.5], "y": [6, 7, 8.5, 9, 7.5, 6.5, 8, 9.5], "mode": "markers", "type": "scatter", "name": "A 类", "marker": {"color": "#12b886", "symbol": "circle", "size": 10}}, {"x": [5.5, 6, 7, 8, 9, 6.5, 7.5, 8.5, 9.5], "y": [1, 2, 3, 1.5, 2.5, 4, 3.5, 0.5, 1.8], "mode": "markers", "type": "scatter", "name": "B 类", "marker": {"color": "#be4bdb", "symbol": "square", "size": 10}}]}回归旨在预测连续值(蓝色线拟合蓝色点),而分类旨在将数据分离成不同的组(红色虚线将绿色圆形与紫色方形分离)。分类为何重要分类是监督机器学习的一个核心组成部分,应用广泛。构建准确的分类器使我们能够自动化决策过程,识别模式,并从带标签的数据中获得认识。从过滤垃圾邮件到辅助医疗专业人员以及了解客户行为,分类模型都是不可或缺的工具。在本章接下来的部分中,我们将研究 Scikit-learn 提供的用于处理分类任务的特定算法,包括逻辑回归、K-近邻和支持向量机。我们还将学习如何使用合适的度量标准来评估这些分类器的性能,因为仅仅测量“准确率”通常不足以了解模型的真正效果。