如果使用像scikit-learn这样的库,如何在将输入提供给SVM分类器时对某些特征分配更多的权重?这是人们常做的事情吗?
首先 - 您可能不应该这样做。机器学习的整个概念是使用统计分析分配最优权重。你在此处干扰了整个概念,因此你需要有非常强的证据说明这对你正在尝试建模的过程至关重要,并且由于某种原因,你的模型目前缺少它。
话虽如此-没有通用答案。这完全取决于模型,其中一些模型允许您加权特征-例如,在随机森林中,您可以将采样特征进行偏置分布,以便分析您感兴趣的特征; 在SVM中,只需将给定特征乘以一个常数即可 - 还记得当您被告知在SVM中归一化您的特征吗?这就是为什么-您可以使用特征的比例“引导”分类器朝着给定的特征方向。具有高值的特征将受到优先考虑。这实际上对大多数线性权重规范化模型(规范化逻辑回归、岭回归、套索等)都适用。
最好的方法是: 假设您有f [1,2,..N],特定特征的权重为w_f [0.12,0.14 ... N]。 首先,您需要通过任何特征缩放方法对特征进行归一化,然后您还需要将特征权重w_f归一化到[0-1]范围内,然后将归一化权重乘以新转换的特征的f [1,2,..N]。 请记住,您还需要在测试数据中进行转换。 现在,您可以检查两个模型的性能:引入功能和不引入功能。