
在广阔的机器学习领域中,两项基本任务构成了预测建模的基石:分类和回归。这些概念使我们能够回答各种各样的问题,从识别图像中的物体到预测金融趋势。然而,提问“是什么类型?”(分类)和“有多少?”(回归)之间的区别,远不止是简单地选择一种算法。这是一个关键决策,影响着建模过程的每一个阶段,从数据解读到成功评估。本文深入探讨了这一关键的二分法,旨在弥合肤浅理解与深刻实践智慧之间的鸿沟。在接下来的章节中,我们将首先探讨区分这些任务的核心“原理与机制”,审视它们的数学基础、内在局限性以及它们之间可能发生冲突的微妙方式。随后,在“应用与跨学科联系”中,我们将看到这些原理如何被应用、组合和调整,以解决不同科学和工业领域中复杂的现实世界问题。
在我们教机器如何从世界中学习的旅程中,我们必须首先决定我们向它们提出哪种问题。事实证明,大量问题可归入两大类。我们是在问“这是哪种东西?”还是在问“它有多少某种东西?”这个听起来简单的区别,是分类和回归领域赖以建立的基石。它们的原理和机制虽然源于同一片统计学的土壤,却以迷人而深刻不同的方式分化发展。
想象你是一位材料科学家,拥有一个庞大的新合成化合物库。你的第一个目标可能是自动化对它们进行分类的过程。基于它们的属性——如化学成分和晶体结构——你希望有一个模型能将每种化合物放入三个桶中:'金属'、'半导体'或'绝缘体'。这就是分类的本质。模型的工作是从一个有限的可能性列表中预测一个离散类别或一个类别标签。输出不是一个可以进行算术运算的数字;它是一个标签,一个身份。
但如果你的目标更具体呢?也许你需要制造一个蓝色LED,这需要一种带隙能量在非常精确范围内的半导体,比如说大约电子伏特()。现在,将其分类到宽泛的类别中已不足够。你需要为任何假设的化合物预测带隙的确切数值。这就是回归的世界。模型的工作是预测一个连续量,一个原则上可以在给定范围内取任何值的实数。
分类和回归之间的选择不是数据本身的属性,而是你对数据提出的问题的属性。同一数据集可以用于两者,完全取决于你的目标。
机器如何学会执行这些任务?我们通过向它展示示例来训练它,当它犯错时,我们朝着正确的方向轻推它。但要做到这一点,我们必须首先定义什么是“错误”。这个定义是一个称为损失函数的数学公式,它是学习过程的灵魂。它告诉机器我们看重什么,以及我们认为什么是错误。
对于回归任务,我们几乎永远不可能完全正确,因此很自然地将错误视为一个程度问题。如果真实房价是500,001,这比预测\hat{y}y(y - \hat{y})^2$。大错误的惩罚远比小错误严厉。
对于分类,情况感觉不同。如果模型预测是'猫',但图像是'狗',那它就是完全错了。但一个更强大的想法是让分类器不仅输出一个标签,还输出每个类别的概率。对于一张狗的图片,一个好的分类器可能会说“95%肯定是狗,4%肯定是猫,1%肯定是兔子”。一个差的分类器可能会说“55%是猫,45%是狗”。对此最常见的损失函数是交叉熵,它衡量在给定模型预测的概率下,我们对真实答案的“惊讶”程度。如果模型为正确类别分配了一个非常低的概率,那么损失(我们的“惊讶”)就会非常高。
现在,这里有一个美丽、统一的思想,足以让任何物理学家会心一笑。这些损失函数不仅仅是碰巧效果很好的任意选择。在许多情况下,它们是我们对数据中随机性或“噪声”所做假设的直接结果。如果你假设你的数据点因为遵循钟形曲线(高斯分布)的噪声而散布在一条真实直线周围,那么从统计上讲,为了最大化你数据的似然,要做的“正确”事情就是最小化误差平方和。MSE不仅仅是一个好主意;它是假设高斯噪声的自然结果。同样,如果你用伯努利分布来建模一个二元分类结果(比如抛硬币),最大化数据的似然会直接导向最小化交叉熵损失。
这个原理可以扩展到更奇特的数据。在计算“命中”细胞的生物学实验中,数据遵循二项分布。适当的损失函数是二项负对数似然,它是交叉熵的一种加权形式。如果我们的仪器有检测限,只能报告一个值“低于L”,我们就必须使用一个能正确考虑该缺失信息的“删失”似然,而不是随便编造一个数字。损失函数的选择是对你问题本质的物理陈述。
在这里,我们遇到了这两个任务之间最深刻的差异之一:内在随机性问题。想象一个简单的世界,其中特征是-1到1之间的一个数字。我们想解决两个问题:
对于分类任务,一个完美的模型是可能的。如果我们能学到处的决策边界,我们就能实现零错误。答案总是确定的,并且可以从中得知。
但对于回归任务,完美是不可能的。即使我们拥有“真实”模型,并且知道底层信号就是,我们也永远无法预测任何特定测量的随机扰动。我们能做的最好的事就是预测,但我们的预测总会因那个讨厌的的值而有所偏差。即使是这个完美模型,其平均平方误差也将是噪声的方差。这就是不可约误差,或偶然不确定性——自然本身对可预测性施加的一个根本性障碍。回归常常被这个机器中的幽灵所困扰,这是一个无论多么巧妙的建模都无法突破的性能下限。
虽然分类和回归是截然不同的,但它们常常以有趣的方式相互作用。当我们试图将一个任务当作另一个来处理,或者同时解决两者时,会发生什么?
将回归问题转变为看似更简单的分类问题是一种常见的诱惑。与其预测确切的温度,为什么不只预测它是“冷”、“暖”还是“热”?虽然这有时可能有用,但从统计学的角度来看,这涉及到丢弃信息。如果真实温度是和,将它们都分箱到“暖”类别中会抹去它们之间的区别。这种信息损失不是没有代价的。数学上可以证明,这种对连续变量进行“分箱”或“量化”的行为,会给模型的预测引入一个额外的误差项,使其在原始连续尺度上的性能从根本上劣于一个合适的回归模型。
任务的性质也可能对模型在剧烈变化附近的行为产生巨大影响。考虑一个在处从值突变为值的函数。 如果我们要求一个局部平均模型执行分类(即,还是),它表现得非常出色。要确定一个点的类别,它只需查看其邻居。如果大多数邻居是“低”的(值),它就预测为类别0。如果大多数是“高”的(值),它就预测为类别1。这种方法一直到边界都有效。
但如果我们要求同一个模型执行回归(即,预测值或),它在跳跃点处就会失败。在一个非常靠近跳跃点的点,其邻域包含了来自低区域和高区域的点。根据其性质,它会对它们进行平均,产生一个介于和之间的预测,而这个预测保证是错误的。这被称为平滑偏误,它揭示了回归对精确值的追求如何被分类可以轻松处理的不连续性所挫败。
如果我们建立一个模型来同时完成这两项任务,共享其部分内部机制呢?这被称为多任务学习。有时,这很棒;为一个回归任务学习看清物体的边缘可能有助于分类该物体是什么。但有时,任务的目标是相互冲突的。回归任务可能需要向上调整一个共享参数以最小化其误差,而分类任务则需要向下推它。最终的参数将是一个折衷,一个或两个任务上的性能最终可能比分开训练时更差。这种现象,称为负迁移,可以被看作是每个任务的损失函数产生的“力”(梯度)指向相反方向,在模型内部造成了一场拔河比赛。
选择正确的工具是成功的一半;另一半是知道它是否真的有效。在这里,回归和分类也呈现出不同且同样微妙的陷阱。
对于回归,一个流行的度量是决定系数,或。它通常被解释为模型解释的方差百分比。为是完美拟合。为意味着你的模型不比每次都猜测平均值更好。但大多数人没有意识到的是,可以是负数。如果你有一个非常糟糕的模型——例如,一个当真实数据为时总是预测常数值的模型——你的可能会高达!一个负的是一个刺耳的警钟,告诉你你的模型提供的信息比一个简单的平均值还要少。
分类有其自己著名的陷阱:准确率悖论。想象你正在建立一个模型来检测一种罕见疾病,该疾病仅影响0.1%的人口。你测试你的模型,发现它有99.9%的准确率。一个巨大的成功!但当你仔细看时,你发现你的模型的“聪明”策略是:它对每一个人都预测“无疾病”。它完全无用,却有近乎完美的准确率。这在任何有严重类别不平衡的问题中都会发生。在这些情况下,原始准确率是一个危险的误导性度量。更诚实的度量,如平衡准确率(它平均每个类别的准确率)或关注稀有正类的度量(如精确率-召回率曲线下面积),对于避免自欺欺人至关重要。
在这些不平衡场景中,出现了一个微妙但关键的点。最小化分类错误的贝叶斯最优决策规则是预测最可能的类别。这意味着在预测概率处设置阈值。即使一个类别很稀有,如果它在给定点的概率是,它仍然是最可能的结果。许多实践者试图通过改变决策阈值或通过重采样数据来创建一个平衡的训练集来“修复”不平衡。如果天真地这样做,这些方法在统计上是不一致的,并且会导致对原始问题而言是次优的分类器。正确的路径是建立一个能在真实数据上预测校准概率的模型,然后对于纯粹的准确率目标应用的阈值。
到目前为止,我们一直关注输出()中的噪声。但如果我们的输入测量()有噪声呢?假设我们正在测量病人的血压,但我们的袖带略有不准。这就是“变量含误差”问题。
在对我们的噪声测量进行的线性回归时,会发生一些隐蔽的事情。输入中的噪声系统性地偏倚了估计的关系。计算出的斜率将比真实斜率更接近于零——这种现象称为衰减偏误。模型会低估真实效果。
如果我们随后使用这个有缺陷的回归模型来做出分类决策(例如,“如果预测的血压超过一个阈值,则预测为‘高风险’”),那么该决策边界将被扭曲。我们仪器中的噪声已经通过整个建模流程传播,破坏了回归估计和从中得出的分类规则。这显示了这些概念是多么深刻地交织在一起;一个似乎源于输入数据的问题,可以表现为回归和分类框架特有的错误。
从一个简单的问题——是哪一种还是有多少?——我们揭示了一幅由相互关联的思想构成的丰富画卷。这个选择决定了输出的性质、衡量错误的正确方式、预测的基本限制以及评估的微妙陷阱。理解这些原理是明智而有效地使用这些强大工具的关键。
现在我们已经掌握了回归和分类的数学核心,让我们走出教室,进入世界。这两种预测模式之间的区别不仅仅是一个学术练习;它是一个根本性的选择,塑造了我们几乎在人类努力的每个领域中解决问题的方式。一个实践者的真正艺术和科学,不仅仅在于运行一个算法,而在于从一开始就明智地构建问题。一个病人的状况是一个离散的状态(生病 vs. 健康),还是在一个连续的生命力谱上的一个点?一个金融资产的未来是一个具体的价格,还是仅仅是一个方向(上涨或下跌)?我们寻求的答案决定了我们必须提出的问题,在这样做的时候,我们就在分类世界和回归世界之间做出了选择。
想象一家公司试图通过分析在线评论来了解人们对其产品的看法。这个单一、混乱、现实世界的问题可以通过几个不同的视角来看待。
如果目标是对情绪有一个高度细致的理解,我们可能会要求一个算法为每条评论预测一个连续的分数,比如说从(纯粹负面)到(纯粹正面)。这是一个回归问题。它使我们能够区分一条轻微正面的评论(分数)和一条热情洋溢的评论(分数)。
但如果公司只是想把评论分类到“正面”和“负面”的箱子里,以便快速查看仪表板摘要呢?问题就变了。现在,我们只需要预测一个二元标签:代表正面,代表负面。这是一个经典的分类问题。我们自愿地舍弃了细粒度的细节,以换取一个更简单、更具决定性的输出。
那么,许多平台上常见的五星评级系统呢?在这里,我们是从中预测一个类别。这看起来像分类,但有一个转折。这些类别有自然的顺序;4星比3星好,但1星和2星之间的“距离”可能与4星和5星之间的不同。这种特殊的、有序的结构催生了一个称为序数回归的混合领域。
这里的关键洞见是,模型的选择和成功的度量是深度交织的。如果我们的目标是生成一个最正面评论的排名列表,一个训练来最小化平方误差的回归模型可能不是最好的工具。最小化情绪分数值的误差与正确获取顺序是不同的目标。一个专门为优化等级相关性而设计的模型,在该任务上可能会表现得更好,即使其原始分数预测不那么准确。“最佳”方法不是绝对的;它服务于被提出的问题。
有时,世界会给我们呈现一些既非此又非彼,而是两者结合的问题。考虑一下气象学家预测每日降雨量的任务。在很大一部分时间里,答案很简单:零。没有雨。在下雨的日子里,雨量可以从毛毛细雨到倾盆大雨不等。
一个试图直接预测雨量的朴素回归模型会很吃力。它会不断地试图将下雨天与数量远多得多的无雨天进行平均,导致系统性的预测不佳。一个更优雅的解决方案是门槛模型,它将问题一分为二,反映了我们自己的直觉。
首先,它提出一个分类问题:今天会下雨吗?(是/否)。这是一个二元分类任务,我们可以为此建立一个专门的模型。
其次,在答案为“是”的条件下,它提出一个回归问题:会下多少雨? 另一个回归模型仅在实际下雨天的数据上进行训练。
最终的预测是两者的综合。这个两阶段过程——一个分类“门”后跟一个条件回归——非常强大。我们随处可见它的身影,从保险公司预测索赔成本(首先,会提出索赔吗?然后,索赔金额会是多少?)到经济学家为家庭在奢侈品上的支出建模(首先,一个家庭会购买吗?然后,他们会花多少钱?)。它表明,分类和回归不是竞争对手,而是可以结合起来以模拟更复杂现实的伙伴。
在现代人工智能的世界里,系统常常被要求同时精通多种技能。考虑一下自动驾驶汽车中的计算机视觉系统。当它处理前方场景时,它必须为它检测到的每个物体同时解决数千个问题。对于一个行人,系统需要回答:
一个单一的深度神经网络学会同时做这两件事。这是最纯粹形式的多任务学习。网络有一个共享的“身体”或“主干网络”,用于学习通用特征,然后分叉成独立的“头”——一个用于分类,一个用于回归。这就提出了一个引人入胜的设计问题:这两个任务应该被迫共享它们所有的机制,还是应该在最后给予它们自己的私有资源?如果它们共享参数,分类任务的学习信号可能会干扰或“对抗”回归任务的学习信号。工程师可以测量每个任务的梯度对齐情况,以查看它们是在“斗争”还是在“互相帮助”。通过为每个任务提供自己解耦的最后几层,可以在头部层面消除这种干扰,通常会带来两者性能的提升。汽车在识别行人和精确定位他们方面都变得更好。
最复杂的机器学习应用不会将世界视为一个待盲目建模的黑箱。相反,它们将深刻的科学理解直接整合到学习问题的构建中。这就是数据科学家成为真正科学家的地方。
想象我们是材料科学家,正在设计一种新的可生物降解塑料。我们想根据其化学结构预测其半衰期——即其一半分解所需的时间。我们可以将其视为一个直接的回归问题:输入化学特征,输出一个数字。但化学家知道,衰变过程通常遵循动力学定律,如著名的阿伦尼乌斯方程,它描述了温度如何影响反应速率。该定律告诉我们,速率常数与活化能等性质呈指数关系。由于半衰期与速率常数成反比(),因此半衰期本身与底层的化学特征存在指数关系。
对进行直接的线性回归,将试图用一条直线去拟合一条指数曲线——这是徒劳的。秘诀在于转换目标。通过取自然对数,我们将指数关系变成了线性关系。我们现在正在对进行线性回归,这是一个算法可以完美且可解释地解决的问题。我们不仅仅是拟合了数据;我们建立了一个尊重过程基本物理原理的模型。
这种机制驱动的建模原则是普遍的。在合成生物学中,当设计一个模型来从基因的DNA序列预测其活性时,分子生物学的知识不是可选项;它是必不可少的。知道DNA有方向性,蛋白质与局部基序结合,以及这些基序的位置很重要,这些知识决定了机器学习模型的整个架构。我们建立一个模型,它不把输入看作是任意的字母串,而是看作一件生物机械,尊重其已知属性。
预测未来,是许多模型的终极目标,也存在于我们两个概念的交汇处。在金融市场或气候科学中,我们可以将问题构建为回归(预测明年的确切温度或股价)或分类(预测温度或价格是上涨还是下跌)。但在这里,我们面临一个严峻的约束:时间之箭。我们必须非常小心,不要让来自未来的信息泄漏到我们模型的训练过程中,这是一个很容易犯且后果灾难性的错误。
这给我们带来了关于学习局限性的最后一个、令人谦卑的教训。假设我们用决策树建立一个回归模型来预测股票回报。决策树的工作原理是将特征世界(过去的收益、交易量等)划分为一组超矩形框。任何新点的预测仅仅是落入同一框内的所有训练数据的历史回报的平均值。
现在,想象一次“模因股票”的反弹,一个由社交媒体情绪驱动的前所未有的事件,将情绪得分推向了训练数据中前所未见的水平。我们的树会预测什么?它找到新的数据点,看到其情绪得分爆表,并将其放入其已学习的世界地图的“最外层”框中。然后它自信地预测该框的历史平均值。它完全错过了这次反弹。它根据其本质,无法预测一个超出其所见范围的值。随机森林,作为这样树的平均,同样对未知视而不见。
这是一个深刻的警示故事。一些模型只能插值;它们不能外推。它们在识别被教过的模式方面非常出色,但在构造上无法想象一个真正的新现实。这不是回归作为一个概念的失败,而是这种特定工具的一个属性。其他回归工具,如线性模型,可以外推——有时取得惊人的成功,有时则以惊人的、高方差的方式失败。
理解分类和回归之间的界限只是第一步。真正的旅程在于驾驭它们应用的广阔多样的领域,从语言的复杂性到化学的基本定律,同时始终对我们模型真正能知道的极限保持健康的敬畏。