Python 是否有可能向SVM模型中添加一个协变量(对不感兴趣的变量进行控制)?

Python 是否有可能向SVM模型中添加一个协变量(对不感兴趣的变量进行控制)?,python,machine-learning,scikit-learn,svm,Python,Machine Learning,Scikit Learn,Svm,我对机器学习和python非常陌生,我正在尝试建立一个模型,以预测患者(N=200)和对照组(N=200)的结构神经成像数据。在初始预处理完成后,我将神经成像数据重塑为2D阵列,并构建了以下模型: from sklearn.svm import SVC svc = SVC(C=1.0, kernel='linear') from sklearn.grid_search import GridSearchCV from numpy import range k_range = np.arang

我对机器学习和python非常陌生,我正在尝试建立一个模型,以预测患者(N=200)和对照组(N=200)的结构神经成像数据。在初始预处理完成后,我将神经成像数据重塑为2D阵列,并构建了以下模型:

from sklearn.svm import SVC
svc = SVC(C=1.0, kernel='linear')


from sklearn.grid_search import GridSearchCV
from numpy import range
k_range = np.arange(0.1,10,0.1)
param_grid=dict(C=k_range)
grid=GridSearchCV(svc, param_grid, cv=10, scoring='accuracy')
grid.fit(img,labels)
grid.grid_scores_
print grid.best_score_
print grid.best_params_
这给了我一个不错的结果,但我想控制以下事实:使用不同的扫描仪采集不同的图像(例如,使用扫描仪1扫描受试者1至150,使用扫描仪2扫描受试者101至300,使用扫描仪3扫描受试者301至400)。是否有任何方法可以将其添加到上述模型中

我读到之前的功能选择可能会有所帮助。然而,当这些特征可能与扫描仪相关时,我不想简单地提取有意义的特征。事实上,我想对患者和控制进行分类,而不是基于扫描仪(即扫描仪控制)

如果您对此有任何想法,我们将不胜感激,
感谢您的诊断,您可以查看数据在每个扫描仪上的分布情况,看看您正在追求的方向是否有希望。标准化(例如,每个扫描仪的平均值+方差)可以是一个选项,正如有人已经建议的那样。另一个选项是向要素集添加3个附加维度,作为所用扫描仪的一个热编码(即,对于每个示例,相应扫描仪的位置为1,其他扫描仪的位置为0)

若要将其添加到模型中,可以将每个扫描仪的规格化参数作为要素,并将其包含在模型中

只是一个注释,参数
C
的网格应为对数间隔
k_range=np.logspace(-1,1100)
谢谢@ZichenWang的建议,它将更新代码。在我看来,你似乎在寻找某种形式的规范化,扫描仪错误被抽象掉了。我不确定这些方法是什么,但也许更广泛的术语可能会有所帮助。谢谢@JuanCarlosCoto,我将阅读更多关于规范化及其工作原理的内容。谢谢,这非常有用。我很喜欢你提到的最后一个选择。我一定会同意的。把你的答案解释清楚