可以看到 , 在这个案例中 , 前者做的事儿叫\"训练\"模型 , 它只用到了数据的一个子集 , 而训练得到的模型究竟表现如何需要通过数据的另一个子集测试集测试之后才能知道 。 在这个例子中 , 机器学习的最终目的是在测试集上获得最佳性能 。
对于后者 , 我们则事先假设数据是一个具有高斯噪声的线性回归量 , 然后试图找到一条线 , 最大限度地减少了所有数据的均方误差 。 不需要训练或测试集 , 在许多情况下 , 特别是在研究中(如下面的传感器示例) , 建模的目的是描述数据与输出变量之间的关系 而不是对未来数据进行预测 。 我们称此过程为统计推断 , 而不是预测 。 尽管我们可以使用此模型进行预测 , 这也可能是你所想的 , 但评估模型的方法不再是测试集 , 而是评估模型参数的显著性和健壮性 。
机器学习(这里特指有监督学习)的目的是获得一个可反复预测的模型 。 我们通常不关心模型是否可以解释 。 机器学习只在乎结果 。 就好比对公司而言 , 你的价值只用你的表现来衡量 。 而统计建模更多的是为了寻找变量之间的关系和确定关系的显著性 , 恰巧迎合了预测 。
下面我举一个自己的例子 , 来说明两者的区别 。 我是一名环境科学家 。 工作的主要内容是和传感器数据打交道 。 如果我试图证明传感器能够对某种刺激(如气体浓度)做出反应 那么我将使用统计模型来确定信号响应是否具有统计显著性 。 我会尝试理解这种关系 , 并测试其可重复性 , 以便能够准确地描述传感器的响应 , 并根据这些数据做出推断 。 我还可能测试 , 响应是否是线性的?响应是否归因于气体浓度而不是传感器中的随机噪声?等等 。
而同时 , 我也可以拿着从20个不同传感器得到的数据 去尝试预测一个可由他们表征的传感器的响应 。 如果你对传感器了解不多 , 这可能会显得有些奇怪 , 但目前这确实是环境科学的一个重要研究领域 。
用一个包含20个不同变量的模型来表征传感器的输出显然是一种预测 , 而且我也没期待模型是可解释的 。 要知道 , 由于化学动力学产生的非线性以及物理变量与气体浓度之间的关系等等因素 , 可能会使这个模型非常深奥 , 就像神经网络那样难以解释 。 尽管我希望这个模型能让人看懂 但其实只要它能做出准确的预测 , 我就相当高兴了 。
如果我试图证明数据变量之间的关系在某种程度上具有统计显著性 , 以便我可以在科学论文中发表 , 我将使用统计模型而不是机器学习 。 这是因为我更关心变量之间的关系 , 而不是做出预测 。 做出预测可能仍然很重要 , 但是大多数机器学习算法缺乏可解释性 , 这使得很难证明数据中存在的关系 。
很明显 , 这两种方法在目标上是不同的 , 尽管使用了相似的方法来达到目标 。 机器学习算法的评估使用测试集来验证其准确性 。 然而 , 对于统计模型 , 通过置信区间、显著性检验和其他检验对回归参数进行分析 , 可以用来评估模型的合法性 。 因为这些方法产生相同的结果 , 所以很容易理解为什么人们会假设它们是相同的 。
统计与机器学习在线性回归上的差异
有一个误解存在了10年:仅基于它们都利用相同的基本概率概念这一事实 , 来混淆这两个术语是不合理的 。
然而 , 仅仅基于这两个术语都利用了概率里相同的基本概念这一事实而将他们混为一谈是不合理的 。 就好比 , 如果我们仅仅把机器学习当作皮了一层光鲜外衣的统计 , 我们也可以这样说: