2

I am doing a logistic regression to predict the outcome of a binary variable, say whether a journal paper gets accepted or not. The dependent variable or predictors are all the phrases used in these papers - (unigrams, bigrams, trigrams). One of these phrases has a skewed presence in the 'accepted' class. Including this phrase gives me a classifier with a very high accuracy (more than 90%), while removing this phrase results in accuracy dropping to about 70%. My more general (naive) machine learning question is: Is it advisable to remove such skewed features when doing classification? Is there a method to check skewed presence for every feature and then decide whether to keep it in the model or not?

4

2 回答 2

2

如果我理解正确,您会问是否应该删除某些功能,因为它是一个很好的预测器(它使您的分类器工作得更好)。所以答案很简短——实际上不要删除它,整个概念就是找到这些特征。

删除这种特征的唯一原因是这种现象只发生在训练集中,而不是在真实数据中。但是在这种情况下,您有错误的数据 - 这并不代表基础数据密度,您应该收集更好的数据或“清理”当前数据,使其具有与“真实数据”相似的特征。

于 2013-11-17T18:20:45.727 回答
2

根据您的评论,听起来您的文档中对课程具有高度预测性的特征是近乎重言式:“论文接受时间”与接受的论文相关,因为您数据库中的至少一些论文是从已经接受的论文中删除的论文,并由作者进行了注释。

对我来说,这对于试图预测一篇论文是否会被接受来说听起来像是一个无用的功能,因为(我想)你试图在实际接受发布之前预测论文的接受度!在这种情况下,你想用来测试你的算法的论文都不会被注释为“论文接受时间”。所以,我会删除它。

您还询问了如何确定一个特征是否与一个类密切相关。对于这个问题,我想到了三件事。

首先,您可以只计算数据集中每个特征的基本频率计数,然后跨类比较这些值。这可能不是超级信息,但它很容易。

其次,由于您使用的是对数线性模型,因此您可以在训练数据集上训练模型,然后根据逻辑回归参数向量中的权重对模型中的每个特征进行排名。具有高正权重的特征表示一类,而具有大负权重的特征强烈表示另一类。

最后,为了完整起见,我会指出您可能还想研究特征选择。有很多方法可以为机器学习算法选择相关特征,但我认为从您的角度来看,最直观的方法之一可能是贪婪特征消除. 在这种方法中,您使用模型中的所有 N 个特征来训练分类器,并在一些保留的验证集上测量准确度。然后,训练 N 个新模型,每个模型具有 N-1 个特征,使得每个模型消除 N 个特征中的一个,并测量由此产生的准确度下降。降幅最大的特征可能强烈地预测了该类别,而没有可测量差异的特征可能会从您的最终模型中省略。正如 larsmans 在下面的评论中正确指出的那样,这根本不能很好地扩展,但有时它可能是一种有用的方法。

于 2013-11-17T19:52:24.907 回答