区分统计学和机器学习中的两组:假设检验 vs. 分类 vs. 聚类

机器算法验证 机器学习 假设检验 t检验 无监督学习 监督学习
2022-01-24 04:05:48

假设我有两个数据组,分别标记为 A 和 B(每个包含例如 200 个样本和 1 个特征),我想知道它们是否不同。我可以:

  • a) 进行统计检验(例如 t 检验)以查看它们在统计上是否不同。

  • b) 使用监督机器学习(例如支持向量分类器或随机森林分类器)。我可以对我的部分数据进行训练,并在其余部分进行验证。如果机器学习算法之后正确地对其余部分进行分类,我可以确定样本是可微的。

  • c) 使用无监督算法(例如 K-Means)并让它将所有数据分成两个样本。然后我可以检查这两个找到的样本是否与我的标签 A 和 B 一致。

我的问题是:

  1. 这三种不同的方式如何重叠/排他?
  2. b) 和 c) 对任何科学论证有用吗?
  3. 我如何从方法 b) 和 c) 中获得样本 A 和 B 之间差异的“显着性”?
  4. 如果数据具有多个特征而不是 1 个特征,会发生什么变化?
  5. 如果它们包含不同数量的样本,例如 100 对 300,会发生什么?
4个回答

好问题。任何事情都可能是好是坏,有用与否,取决于你的目标是什么(也可能取决于你的情况的性质)。在大多数情况下,这些方法旨在满足不同的目标。

  • 统计检验,如检验,可让您检验科学假设。它们通常用于其他目的(因为人们只是不熟悉其他工具),但通常不应该这样做。如果您有一个先验假设,即两组在正态分布的变量上具有不同的均值,那么检验将让您检验该假设并控制您的长期 I 型错误率(尽管您不知道是否在这种特殊情况下,您产生了 I 类错误率)。 tt
  • 机器学习中的分类器,如 SVM,旨在将模式分类为属于一组已知类中的一个。典型的情况是你有一些已知的实例,你想用它们来训练分类器,以便将来当你有其他的真实类别未知的模式时,它可以提供最准确的分类。这里的重点是样本外的准确性;你没有测试任何假设。当然,您希望预测变量/特征的分布在类别之间有所不同,因为否则未来的分类帮助将是不可能的,但您并没有试图评估您认为 Y 的均值与 X 不同的信念。您想正确猜测当 Y 已知时,X 在未来。
  • 无监督学习算法,如聚类,旨在检测或在数据集上施加结构。您可能想要这样做的原因有很多。有时,您可能期望数据集中存在真实的潜在分组,并希望查看聚类结果是否合理且可用于您的目的。在其他情况下,您可能希望在数据集上强加一个结构以启用数据缩减。无论哪种方式,您都不是在尝试检验关于任何事物的假设,也不希望能够准确地预测未来的任何事物。

考虑到这一点,让我们解决您的问题:

  1. 这三种方法在它们所服务的目标上有着根本的不同。
  2. b 和 c 在科学论证中可能很有用,这取决于所讨论论证的性质。到目前为止,最常见的科学研究类型集中在检验假设上。然而,形成预测模型或检测潜在模式也是可能的、合法的目标。
  3. 您通常不会尝试从方法 b 或 c 中获得“意义”。
  4. 假设这些特征本质上是分类的(我收集的是您的想法),您仍然可以使用阶乘方差分析来测试假设。在机器学习中有一个用于多标签分类的子主题。也有用于多个成员/重叠集群的方法,但这些方法不太常见并且构成了一个更难处理的问题。有关该主题的概述,请参阅 Krumpleman, CS (2010) 重叠聚类。论文,UT Austin,电气和计算机工程 ( pdf )。
  5. 一般来说,随着类别中案例数量的不同,所有三种类型的方法都具有更大的难度。

不打算解决集群问题,因为它已在其他答案中得到解决,但是:

通常,检验两个样本是否有意义不同的问题称为双样本检验

通过进行检验,您可以严格限制您正在寻找的差异类型(正态分布之间的均值差异)。还有其他测试可以检查更一般类型的距离:Wilcoxon-Mann-Whitney 用于随机排序,Kolmogorov-Smirnov 用于一维的一般差异,最大平均差异或任意输入空间上的一般差异的等效能量距离,或很多其他的选择。这些测试中的每一个都更擅长检测某些类型的差异,有时很难推断它们在检测方面的好坏,或者解释超出值的结果。tp

如果您从分类器中构建两个样本测试,例如Lopez-Paz 和 Oquab (2017)最近提出的那样,则可能更容易考虑其中的一些问题。程序如下:

  • 将您的观察分别分成两部分,XYXtrainXtestYtrainYtest
  • 训练分类器以区分XtrainYtrain
  • 将分类器的输出应用于XtestYtest
  • 计算它的预测正确的次数得到应用二项式检验来区分空如果,那么这两个分布是不同的。p^p=12p12p12

通过检查学习的分类器,您还可以以半有意义的方式解释分布之间的差异。通过更改您考虑的分类器系列,您还可以帮助指导测试以寻找某些类型的差异。

请注意,进行训练测试拆分很重要:否则,只记住其输入的分类器将始终具有完美的可辨别性。增加训练集中点的比例可以让你有更多的数据来学习一个好的分类器,但更少的机会来确保分类准确度真的不同于偶然性。这种权衡会因问题和分类器系列而异,并且尚未被充分理解。

Lopez-Paz 和 Oquab 在一些问题上展示了这种方法的良好经验表现。拉姆达斯等人。(2016)还表明,从理论上讲,一种密切相关的方法对于一个特定的简单问题是速率最优的。在这种情况下要做的“正确”事情是一个积极研究的领域,但如果您想要更多的灵活性和可解释性而不是仅仅应用一些现成的标准测试,那么这种方法至少在许多情况下是合理的。

只有方法 (a) 服务于检验假设的目的。

在使用监督机器学习算法 (b) 的情况下,它们既不能证明或反驳关于群体差异的假设。如果机器学习算法没有正确地对组进行分类,这可能是因为您对问题使用了“错误”的算法,或者您没有对它进行足够的调整等。另一方面,您可能会长时间“折磨”完全“随机”的数据足以产生做出良好预测的过拟合模型。还有一个问题是您何时以及如何知道该算法做出了“好的”预测?几乎从来没有你会以 100% 的分类准确率为目标,那么你什么时候知道分类结果证明了什么?

聚类算法 (c) 不是为监督学习而设计的。它们的目的不是重新创建标签,而是根据相似性对数据进行分组。现在,结果取决于您使用的算法以及您正在寻找的相似性。你的数据可能有不同种类的相似性,你可能想寻找男孩和女孩之间的差异,但算法可能会找到一群贫穷和富有的孩子,或者聪明的和不太聪明的孩子,右手和左手等等。没有找到您打算进行的分组并不能证明该分组没有意义,而只能证明它找到了其他“有意义的”分组。与之前的情况一样,结果可能取决于所使用的算法和参数。如果十分之一的算法/设置找到“你的”,它会适合你吗 标签?如果是百分之一呢?在停止之前你会搜索多长时间?请注意,在绝大多数情况下使用机器学习时,您不会在使用具有默认设置的一种算法后停止,结果可能取决于您使用的过程。

  1. a) 只回答你分布是否不同的问题,而不是如何区分它们。b) 还将找到区分两种分布的最佳值。c) 如果两个分布具有某些特定属性,则将起作用。例如,它适用于正态分布,但不适用于某些两个模态分布,因为该方法可以区分同一组的两种模态,而不是两个不同的组。

  2. c) 对科学论证没有用处,因为有两种模态分布。b) 可用于区分两个分布,因为您可以计算显着性(参见 3。)虽然我从未遇到过。

  3. 通过引导。您根据随机子样本计算模型 1000 次。您会得到一个分数,例如 alpha 和 beta 错误的最小总和。您将分数升序排序。对于 5% 的置信度,您选择第 950 个值。如果该值低于 50%(对于 A 组和 B 组的相同点数),那么您可以以 95% 的置信度忽略分布相同的原假设。问题是,如果分布都是正态分布,均值相同,但变化不同,那么您将无法通过 ML 技术理解它们是不同的。另一方面,您可以找到能够区分两种分布的变异测试。反过来,ML 可能比统计测试更强大,并且能够区分分布。

  4. 当您在 ML 中只有一个特征时,您只需要找到一个值来区分分布。有两个特征,边界可以是一个窦,在多维空间中它可能真的很奇怪。因此,找到正确的边界将更加困难。另一方面,附加功能会带来附加信息。因此,它通常可以更容易地区分这两种分布。如果两个变量都是正态分布的,那么边界就是一条线。

  5. 由于不能应用中心极限定理,较小的样本可能表现异常。更大的样本开始表现得更正常,因为中心极限定理开始起作用。例如,如果样本足够大,两组的平均值将几乎呈正态分布。但通常不是 100 对 300,而是 10 个观察对 1000 个观察。因此,根据该站点,如果观察数大于 40 且没有异常值,则均值差异的 t 检验将与分布无关。