如何在机器学习中更加重视某些特征?
How to put more weight on certain features in machine learning?
如果使用像 scikit-learn 这样的库,我如何为 SVM 这样的分类器的输入中的某些特征分配更多权重?这是人们做的事情还是我的问题有其他解决方案?
首先 - 你可能不应该这样做。机器学习的整个概念是使用统计分析分配最佳权重。您在这里干扰了整个概念,因此您需要非常有力的证据证明这对您尝试建模的过程至关重要,但出于某种原因,您的模型目前缺少它。
话虽如此 - 没有通用的答案。这纯粹是特定于模型的,其中一些将允许您对特征进行加权——在随机森林中,您可以将分布从中抽取特征进行偏置,以分析您感兴趣的特征;在 SVM 中,只需将给定特征乘以一个常数就足够了——还记得你被告知要在 SVM 中规范化你的特征吗?这就是为什么 - 你可以使用特征的规模 'steer' 你的分类器对给定的特征。具有高价值的将被优先考虑。这实际上适用于任何权重范数正则化模型(正则化逻辑回归、岭回归、套索等)。
最好的方法是:
假设您有 f[1,2,..N] 并且特定特征的权重是 w_f[0.12,0.14...N]。
首先,您需要通过任何特征缩放方法对特征进行归一化,然后您还需要将特征的权重 w_f 归一化到 [0-1] 范围内,然后将归一化后的权重乘以 f[1,2, ..N] 具有新的转换功能。
请记住,您还需要在测试数据中对其进行转换。
现在您可以检查两个模型的性能:不引入特征和引入特征。
如果使用像 scikit-learn 这样的库,我如何为 SVM 这样的分类器的输入中的某些特征分配更多权重?这是人们做的事情还是我的问题有其他解决方案?
首先 - 你可能不应该这样做。机器学习的整个概念是使用统计分析分配最佳权重。您在这里干扰了整个概念,因此您需要非常有力的证据证明这对您尝试建模的过程至关重要,但出于某种原因,您的模型目前缺少它。
话虽如此 - 没有通用的答案。这纯粹是特定于模型的,其中一些将允许您对特征进行加权——在随机森林中,您可以将分布从中抽取特征进行偏置,以分析您感兴趣的特征;在 SVM 中,只需将给定特征乘以一个常数就足够了——还记得你被告知要在 SVM 中规范化你的特征吗?这就是为什么 - 你可以使用特征的规模 'steer' 你的分类器对给定的特征。具有高价值的将被优先考虑。这实际上适用于任何权重范数正则化模型(正则化逻辑回归、岭回归、套索等)。
最好的方法是: 假设您有 f[1,2,..N] 并且特定特征的权重是 w_f[0.12,0.14...N]。 首先,您需要通过任何特征缩放方法对特征进行归一化,然后您还需要将特征的权重 w_f 归一化到 [0-1] 范围内,然后将归一化后的权重乘以 f[1,2, ..N] 具有新的转换功能。 请记住,您还需要在测试数据中对其进行转换。
现在您可以检查两个模型的性能:不引入特征和引入特征。