【问题标题】:Machine Learning - Feature selection and training data机器学习 - 特征选择和训练数据
【发布时间】:2014-12-27 04:39:08
【问题描述】:

我已经构建了一个分类器,并希望将其准确率提高到目前的 73% 以上

我开始使用卡方进行特征选择,但如何将选择的特征重新纳入训练数据以构建分类器?

如果我要对每个训练数据进行比较,并且只选择出现在特征列表中的术语,那是否正确?

我还需要对测试集数据做同样的事情吗,这些是看不见的例子?

任何建议将不胜感激。

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

    简单地说,特征选择本质上是说(例如):“在输入向量的 5 个属性中,只有特征 1,3,4 有用。特征 2,5 是垃圾。根本不要使用它们” .这适用于训练和测试模式,因为它们来自相同的分布。因此,您从训练和测试模式中删除特征 2 和 5,然后以通常的方式训练和测试您的分类器。

    更一般地说,特征提取(特征选择的超集)的重点是将原始输入向量转换为不同的输入向量,更适合分类。您将训练和测试模式都转换为新形式,本质上是从原始形式创建一个新问题。请注意,这些值可能出现在原始模式中,也可能不出现(它们可能是由原始模式中的函数和值组合产生的)然后您使用新的、转换后的问题来训练和测试分类器

    【讨论】:

      【解决方案2】:

      值得对 blue_note 的回答做一点补充。

      为了防止过度拟合并确保您的模型能够泛化,您应该在单独的开发集中测试您的特征选择策略。直觉是:如果您尝试大量不同的模型(即在不同特征子集上训练的分类器),很可能在 训练集 中某些模型会比其他模型表现更好。为确保某个特定模型确实比其他模型更好,您需要在不同的集合中对其进行测试,其中包含训练期间未见过的示例。

      【讨论】: