忽略测试数据上缺失单词特征的方法
Posted
技术标签:
【中文标题】忽略测试数据上缺失单词特征的方法【英文标题】:Methods to ignore missing word features on test data 【发布时间】:2013-07-18 22:38:58 【问题描述】:我正在处理一个文本分类问题,我遇到了一些特征缺失值的问题。
我正在从标记的训练数据中计算单词的类别概率。
例如;
让单词 foo 属于 A 类 100 次,属于 B 类 200 次。在这种情况下,我发现类概率向量为 [0.33,0.67] ,并将其与单词本身一起提供给分类器。
问题是,在测试集中,有一些词在训练数据中没有出现过,所以它们没有概率向量。
我可以为这个问题做些什么?
我尝试为缺失值给出所有单词的平均类概率向量,但它并没有提高准确性。
有没有办法让分类器在评估过程中忽略某些特征,只针对特定实例而没有给出特征的价值?
问候
【问题讨论】:
【参考方案1】:有很多方法可以做到这一点
为您拥有的所有功能子集创建和训练分类器。您可以使用与主分类器训练相同的数据在子集上训练分类器。对于每个样本,只需查看它具有的特征并使用更适合他的分类器。不要试图用那些分类器做一些提升。
只需为无法分类的样本创建一个特殊类。或者您的实验结果太差,功能如此之少。有时人类也无法成功地对样本进行分类。在许多情况下,无法分类的样本应该被忽略。问题不在于分类器,而在于输入,或者可以通过上下文来解释。
作为 nlp 的观点,许多单词在许多应用程序中具有非常相似的含义/用法。因此,您可以使用词干/词形还原来创建单词类。您还可以使用语法更正、同义词、翻译(这个词是否来自世界的另一个地方?)。
如果这个问题对您来说足够重要,那么您将以前面 3 点的组合结束。【讨论】:
以上是关于忽略测试数据上缺失单词特征的方法的主要内容,如果未能解决你的问题,请参考以下文章
详解支持向量机-SVC真实数据案例:预测明天是否会下雨-填补缺失值和编码菜菜的sklearn课堂笔记
如何处理 Matlab 中 Kruskal-Wallis 测试中的缺失值?