关于分类变量选择和不同分类技术的问题

机器算法验证 r 机器学习 分类 降维
2022-03-15 11:32:21

我有一个关于特征选择和分类的问题。我将与 R 一起工作。首先我应该说我不是很熟悉数据挖掘技术,除了多变量分析本科课程提供的简要介绍,所以如果我缺乏关于我的问题的细节,请原谅我。我会尽力描述我的问题。

首先,关于我的项目:我正在做一个图像细胞仪项目,数据集由 100 多个细胞核组织学图像的定量特征组成。所有的变量都是描述细胞核特征的连续变量,例如大小、DNA量等。目前有一个手动过程和一个自动过程来获得这些细胞图像。手动过程(非常)缓慢,但由技术人员完成,并且只产生可用于进一步分析的图像。自动过程非常快,但引入了太多不可用的图像——只有大约 5% 的图像适合进一步分析,每个样本有数千张核图像。事实证明,清理从自动过程中获得的数据实际上比手动过程更耗时。

我的目标是训练一种分类方法,使用 R,从自动过程中获得的数据中区分好对象和坏对象。我有一个从自动过程中获得的已经分类的训练集。它由 150,000 行组成,其中约 5% 是好对象,约 95% 是坏对象。

我的第一个问题涉及特征选择。有超过 100 个连续的解释性特征,我可能希望摆脱噪声变量以(希望)帮助分类。有哪些以改进分类为目标的降维方法?我了解减少变量的需求可能会因所使用的分类技术而异。

这引出了我的第二个问题。我一直在阅读不同的分类技术,但我觉得我无法充分确定最适合我的问题的方法。我主要担心的是好对象相对于坏对象的错误分类率较低,而且好对象的先验概率远低于坏对象的先验概率。将一个坏对象归类为好对象比从坏对象池中恢复一个好对象更容易,但如果没有太多坏对象被归类为好对象,那就太好了。

我已经阅读了这篇文章,我目前正在根据 chl 的回答考虑随机森林。我也想探索其他的方法,也想在CV这里收集好人的建议。我也欢迎任何关于分类主题的可能有用的读物​​,以及对使用 R 包的建议。

如果我的帖子缺少详细信息,请询问更多详细信息。

2个回答

特征选择不一定会提高现代分类器系统的性能,而且经常会使性能变差。除非找出最重要的特征是分析的目标,否则最好不要尝试使用正则化来避免过度拟合(通过例如交叉验证选择正则化参数)。

特征选择困难的原因是它涉及一个具有许多自由度(基本上每个特征一个)的优化问题,其中标准取决于有限的数据样本。这意味着您可以过度拟合特征选择标准并最终得到一组适用于该特定数据样本的特征,但不适用于任何其他样本(即它的泛化性很差)。另一方面,正则化在基于有限数据样本优化标准的同时,涉及的自由度更少(通常为一个),这意味着过度拟合标准更加困难。

在我看来,“功能选择提供更好的性能”的想法已经过时了。对于简单的线性非正则化分类器(例如逻辑回归),模型的复杂性(VC 维度)随着特征数量的增加而增长。引入正则化后,模型的复杂性取决于正则化参数的值,而不是参数的数量。这意味着即使在非常高维的空间中,正则化分类器也能抵抗过度拟合(只要您正确调整正则化参数)。事实上,这就是支持向量机工作的基础,使用内核将数据转换为高(可能无限)维空间,然后使用正则化来控制模型的复杂性,从而避免过度拟合。

话虽如此,没有免费的午餐;您的问题可能是特征选择效果很好的问题,而找出答案的唯一方法就是尝试一下。但是,无论您做什么,请确保使用嵌套交叉验证之类的方法来获得对性能的公正估计。外部交叉验证用于性能评估,但在每个折叠中重复独立地再次拟合模型(包括特征选择)的每个步骤。一个常见的错误是使用所有数据执行特征选择,然后使用识别的特征进行交叉验证以估计性能。IT 应该很清楚为什么这不是正确的做法,但许多人已经这样做了,因为正确的方法在计算上是昂贵的。

我的建议是尝试使用各种内核的 SVM 或内核逻辑回归或 LS-SVM 等,但没有特征选择。如果没有别的,它会给你一个有意义的基线。

在降维方面,一个好的首选可能是主成分分析

除此之外,我没有太多要补充的,只是如果你对数据挖掘感兴趣,我强烈建议你阅读统计学习的要素它既严谨又清晰,虽然我还没有完成,但它可能会让您深入了解解决问题的正确方法。第 4 章,线性分类器几乎肯定足以让您入门。