Machine learning 机器学习如何比较不同的特征集

Machine learning 机器学习如何比较不同的特征集,machine-learning,feature-extraction,feature-selection,Machine Learning,Feature Extraction,Feature Selection,假设我有两组不同的特性A和B。我正在尝试确定哪一组特性是最好的。由于我的数据集很小,所以我使用遗漏交叉验证作为最终指标。我正试图弄清楚我的实验装置,并在以下几种方法之间做出选择: 1) 将特征集A赋予我的分类器(并可选择运行特征选择),将特征集B赋予同一分类器(也可选择运行特征选择),然后比较这两个分类器之间的LOOCV错误 2) 将特征集A和B赋予分类器,然后明确运行特征选择,然后根据所选特征得出更高级别的结论。(例如,如果选择了某个状态中的多个,则特征集A似乎具有更多的预测值) 3) 在你的

假设我有两组不同的特性A和B。我正在尝试确定哪一组特性是最好的。由于我的数据集很小,所以我使用遗漏交叉验证作为最终指标。我正试图弄清楚我的实验装置,并在以下几种方法之间做出选择:

1) 将特征集A赋予我的分类器(并可选择运行特征选择),将特征集B赋予同一分类器(也可选择运行特征选择),然后比较这两个分类器之间的LOOCV错误

2) 将特征集A和B赋予分类器,然后明确运行特征选择,然后根据所选特征得出更高级别的结论。(例如,如果选择了某个状态中的多个,则特征集A似乎具有更多的预测值)


3) 在你的方法1中,我想知道为什么你对不同的特征使用不同的分类器?
我更喜欢你的方法2。通过在训练过程中保留所有特征,您可以更好地选择适当的特征,因为不必要特征的权重将衰减。如果你有很多功能,每一个都会有一点贡献,那么它就会很好地工作。在这种方法中,还可以添加正则化因子。

您所描述的标准程序与方法1非常相似:

  • 分别在特征集
    A
    B
    上训练同一分类器的两个实例
  • 使用某种形式的交叉验证来评估每一个,比如说10倍交叉验证,或者像你一直使用的那样去掉一个
  • 也就是说,如果您没有严格限制使用功能集
    A xor B
    ,那么您可以使用与第2节中所述类似的方法获得新的功能集
    C


    使用漏掉一个交叉验证很难相信结果,使用10倍可能更好。这可能是其中的一种情况,如果您能够获得更多数据,则会有很大帮助,否则您可能无法执行分析。

    我将原始语句编辑为“相同的分类器”(例如,两者都是经过训练的逻辑回归,或两者都是SVM)。最初,我的意思是不同,因为您使用不同的数据集,所以对同一个分类器获得不同的权重。抱歉搞混了。我会用10倍,但我有一个类不平衡。因此,我希望有一个折叠,其中没有任何特定的类出现,我将无法训练一个二进制分类器。在多数阶级上进行生成性模型训练,然后要求一定的P(x | C)(x是特征,C是阶级)阈值,这是解决阶级不平衡问题的另一种方法吗?