特征数量与观察数量

机器算法验证 机器学习
2022-02-08 03:41:07

是否有关于特征数量与训练“稳健”分类器所需的观察数量之间关系的任何论文/书籍/想法?

例如,假设我有来自两个类的 1000 个特征和 10 个观察作为训练集,另外 10 个观察作为测试集。我训练了一些分类器 X,它在测试集上给了我 90% 的灵敏度和 90% 的特异性。假设我对这种准确性感到满意,基于此我可以说它是一个很好的分类器。另一方面,我只使用 10 个点近似了 1000 个变量的函数,这似乎不是很……健壮?

4个回答

您在这里遇到的是维度灾难或 p>>n 问题(其中 p 是预测变量,n 是观察值)。多年来已经开发了许多技术来解决这个问题。您可以使用AICBIC来惩罚具有更多预测变量的模型。您可以选择随机变量集并使用交叉验证评估它们的重要性您可以使用岭回归套索弹性网络进行正则化或者您可以选择一种技术,例如支持向量机随机森林,可以很好地处理大量预测变量。

老实说,解决方案取决于您要解决的问题的具体性质。

我怀疑没有这样的经验法则普遍适用。考虑一个以两个高斯类为中心的问题+1-1, 都具有协方差矩阵0.000001*一世. 在这种情况下,您只需要两个样本,一个来自任一类即可获得完美分类,几乎与特征数量无关。在频谱的另一端,如果两个类都以具有协方差的原点为中心一世,再多的训练数据都不会给你一个有用的分类器。归根结底,给定数量的特征所需的样本量取决于数据的分布方式,通常,您拥有的特征越多,您需要的数据就越多,才能充分描述数据的分布(如果你不走运,特征数量会呈指数级增长 - 请参阅 Zach 提到的维度诅咒)。

如果您使用正则化,则原则上(上限)泛化误差与特征数量无关(请参阅 Vapnik 在支持向量机上的工作)。然而,这就留下了为正则化参数找到一个好的值的问题(交叉验证很方便)。

您可能对经典建模印象深刻,它容易受到类似龙格悖论的问题的影响,因此需要在后处理中进行一些简约调整。
然而,在机器学习的情况下,将鲁棒性作为模型优化目标的想法只是整个领域的核心(通常表示为未见数据的准确性)。所以,好吧,只要您知道您的模型运行良好(例如来自 CV),就可能没有必要打扰。

真正的问题pn在 ML 的情况下是不相关的属性——主要是因为由于一些随机波动,其中一些属性可能比真正相关的属性更可用于重新生成决策。显然,这个问题与简约无关,但与经典案例一样,最终会导致泛化能力的严重丧失。如何解决它是一个不同的故事,称为特征选择——但总体思路是预处理数据以消除噪音,而不是对模型施加约束。

这些年来我绝对最有价值的书之一是廷斯利和布朗的手册本书中有很多地方讨论了这个主题,由不同的特约作者讨论。