从内核矩阵中删除特征

问题描述 投票:0回答:1

我正在尝试使用带有 sklearn 预计算内核的 SVM 来执行二元分类任务。

我创建了我的火车内核,但我包含了一个我不打算包含的功能,并且测试数据中不存在该功能。我对内核除了数据点之间的“距离”之外到底是什么没有非常透彻的了解,但是是否可以从训练内核中删除此功能而无需生成新的功能?

python machine-learning scikit-learn svm
1个回答
0
投票

我认为你需要重新训练 SVM,因为决策边界现在包含了无效的特征。

但是,假设您无法重新训练 SVM,一种可能有效的方法是在测试数据中插入一列零,以获得与训练数据匹配的列数(或者直接删除该特征)进行预测时来自训练数据)。这将使矩阵维度与预测兼容,并将为无效特征分配 0 值。 SVM 将能够做出预测。然而,如果 SVM 学会了依赖于无效的特征,最终可能会得到不好的结果。

通常,我观察到默认内核往往工作得很好,并为不同的任务提供灵活性(至少对于基线模型而言);是否有特定需要为您的案例定义自定义内核?

通常的做法是重新训练 SVM。如果您能详细说明为什么这是不可能的,这可能会有所帮助(如果是技术问题,我或其他人可能会提供帮助)。

© www.soinside.com 2019 - 2024. All rights reserved.