二进制分类的变量选择过程


29

当变量/特征比学习集中的观察数多时,您更喜欢二进制分类的变量/特征选择是什么?这里的目的是讨论什么是可以最大程度减少分类错误的特征选择过程。

我们可以修复符号为:一致性,让从组是学习组观察的。因此是学习集的大小。我们将设置为要素数量(即要素空间的维)。令表示个坐标。{ X 1... X Ñ } Ñ 0 + ñ 1 = Ñ p X [ ] X [R pi{0,1}{x1i,,xnii}in0+n1=npx[i]ixRp

如果您无法提供详细信息,请提供完整的参考。

编辑(不断更新):以下答案中提出的程序

由于这是社区Wiki,因此可以进行更多讨论和更新

我要说的是:从某种意义上讲,你们都提供了一种允许对变量进行排序但不允许进行变量选择的过程(关于如何选择特征数量,我非常回避,我想你们都使用了交叉验证吗?)可以改进吗?这个方向的答案?(由于这是社区Wiki,因此您无需成为回答者就可以添加有关如何选择变量数量的信息?我已经在此方向上打开了一个问题,在非常高的维度上进行了交叉验证(可以选择在高维分类中使用的变量


是问题还是游泳池?如果是后者,则应该是社区Wiki。如果是第一个,请提供有关您要实现的目标的更多详细信息?例如,它是全相关的还是最小最优选择?多少钱?分类问题有多难?

池...许多意味着1000个特征或更多而少于100个观察值。
罗宾吉拉德

Answers:


18

惩罚Logistic回归是一种非常流行的方法,其中一种最大化对数似然的总和,并且惩罚项由L1-范数(“ lasso”),L2-范数(“ ridge”)和两者的组合组成(“弹性”)或与变量组(“套索组”)相关联的惩罚。这种方法有几个优点:

  1. 它具有很强的理论特性,例如,可以参见Candes&Plan的这篇论文,并且与压缩感测紧密相连。
  2. 它具有可访问的博览会,例如,在Friedman-Hastie-Tibshirani 的《统计学习要素》中(在线可用);
  3. 它具有随时可用的软件来拟合模型。R具有非常快的glmnet软件包,并且可以与相当大的数据集一起很好地工作。Python具有scikit-learn,其中包括L1和L2惩罚逻辑回归;
  4. 它在实践中效果很好,如图像识别,信号处理,生物识别和金融领域的许多应用论文中所示。

10

我对Leo Breiman和Adele Cutleer的《随机森林》有些偏爱,原因如下:

  • 它可以应对分类和连续的预测变量,以及不均衡的分类样本量;
  • 作为一种集成/嵌入方法,交叉验证被嵌入并允许估计泛化误差。
  • 它的调整参数相对不明智(选择用于生长树木的变量百分比,已构建的树木数量);
  • 它提供了变量重要性的原始度量,并且能够揭示变量之间的复杂相互作用(尽管这可能导致难以读取的结果)。

一些作者认为,它的性能与惩罚性SVM或Gradient Boosting Machines一样好(关于后者,请参见Cutler等人,2009)。

它的应用或优点的完整介绍可能不在主题之列,因此,我建议使用Hastie等人的《统计学习元素》。(第15章)和Sayes等。(2007)作进一步阅读。

最后但并非最不重要的一点是,它具有R中的一个很好的实现,带有randomForest包。其他R包也可以扩展或使用它,例如partycaret

参考文献:

卡特勒(A.Cutler),博士卡特勒(Cutler)和JR(史蒂文斯)(2009)。《基于树的方法,在癌症研究中的高维数据分析》中,Li,X.和Xu,R.(eds。),第83-101页,Springer。

Y. Saeys,I。Inza和P.Larrañaga(2007)。生物信息学中的特征选择技术综述。生物信息学23(19):2507-2517。


7

大都会扫描/ MCMC

  • 首先随机选择几个特征,仅对它们进行分类训练并获得错误。
  • 对此工作集进行一些随机更改-删除一个功能,随机添加另一个功能,或将某些功能替换为当前未使用的功能。
  • 训练新的分类器并获取其错误;将dE差异存储在新集中的错误减去先前集中的错误。
  • 有可能min(1;exp(-beta*dE))接受此更改,否则拒绝它,然后尝试另一个随机更改。
  • 重复很长一段时间,最后返回全局误差最小的工作集。

您可以通过对beta参数进行更明智的控制来扩展它。更简单的方法是beta在时间上增加(以物理类比的方式降低温度)时使用模拟退火,以减少波动并将算法推向最小。更难的是使用副本交换


5

如果您只对泛化性能感兴趣,那么最好不进行任何特征选择,而使用正则化(例如,岭回归)。在机器学习社区中,在特征选择方面存在一些开放的挑战,并且依靠正则化而不是特征选择的方法通常至少也可以表现得更好。


3

贪婪的前进选择。

此方法的步骤为:

  • 确保您有培训和验证集
  • 重复以下步骤
    • 用尚未选择的每个单个特征以及所有先前选择的特征训练分类器
    • 如果结果有所改善,请添加性能最佳的功能,否则请停止操作

您如何“训练”您的分类器?大概是在训练集上完成的。如果它是支持向量机(SVM),则可以在训练过程中尝试几个参数。是否已针对每个验证(测试)集进行了测试?还是正在使用k折交叉验证?您使用验证(测试)集多少次来检查您的效果-大概就是准确性。很抱歉,这很容易,但这答案定义不明确,可能会导致过度拟合。
Thylacoleo

@Thylacoleo这是一种非常粗糙的基本和贪婪方法。通常,您在整个运行过程中都将验证设置保持不变,但是您可以随便什么。
Peter Smit 2010年

2

向后淘汰。

从全套开始,然后在剩余特征上迭代训练分类器,并删除重要性最小的特征,然后在分类器误差迅速增加/变得很高时停止。

甚至可以通过迭代地删除每个特征并检查误差增加或如果分类器产生误差而从分类器中进行调整来获得重要性(例如在“随机森林”的情况下)。


2
但问题是变量多于观察值。因此,不可能从全套开始。
罗伯·海德曼

有什么问题?

2
您无法拟合一个变量多于观测值的模型。参数估计的自由度不足。
罗伯·海德曼

1
在Fisher的F计算中,将F (n - k - p) / (k - 1) * ...n观察k数,类数(此处为2)和p变量数一样计算。n - 2 - p < 0什么时候n < p + 2(这里就是这种情况)导致F < 0。那不是问题吗?
Matthieu 2014年

3
正则化或完全贝叶斯回归将允许从一整套预测变量开始就获得独特的解决方案-毫无疑问,其他一些ML技术也是如此。
Scortchi -恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.