具有高级存在性的预测功能

时间:2013-11-17 17:09:03

标签: machine-learning logistic-regression

我正在进行逻辑回归以预测二元变量的结果,比如是否接受期刊论文。因变量或预测因子是这些论文中使用的所有短语 - (unigrams,bigrams,trigrams)。其中一个短语在“接受”类中存在偏差。包括这个短语给了我一个非常高的准确度(超过90%)的分类器,而删除这个短语导致准确率下降到约70%。 我更通用(天真)的机器学习问题是: 在进行分类时,建议删除这些偏斜的特征吗? 是否有方法检查每个特征的偏斜存在,然后决定是否将其保留在模型中?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你会问是否应删除某些功能,因为它是一个好的预测器(它会使你的分类器更好)。所以答案简短而简单 - 不要删除它实际上,整个概念是找到完全相同的功能。

删除此类功能的唯一原因是此现象仅发生在训练集中,而不是实际数据中。但是在这种情况下你会得到错误的数据 - 这不会影响基础数据密度,你应该收集更好的数据或“清理”当前的数据,以便它具有类似“真实数据”的特征。

答案 1 :(得分:2)

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

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

您还询问了如何确定某个功能是否与一个类强烈关联。对于这个问题,有三件事情会浮现在脑海中。

首先,您可以计算数据集中每个要素的基本频率计数,并在各个类别之间比较这些值。这可能不是超级信息,但它很容易。

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

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