我是机器学习和 Python 的新手,我正在尝试构建一个模型来预测患者 (N=200) 与对照组 (N=200) 形成的结构神经影像数据。在初始预处理之后,我将神经成像数据 reshape 为二维数组,我构建了以下模型:
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,以及受试者 301 到 400 用扫描仪 3) 扫描。无论如何,这可以添加到上面的模型中吗?
我读到之前进行特征选择可能会有所帮助。但是,当这些功能可能与扫描仪相关时,我不想简单地提取有意义的功能。事实上,我想对患者和控制进行分类,而不是基于扫描仪(即控制扫描仪)。
如有任何想法,我们将不胜感激, 谢谢你
最佳答案
对于诊断,您可以查看每个扫描仪的数据分布情况,看看您追求的这个方向是否有前途。正如有人已经建议的那样,标准化(例如,每个扫描仪的均值+方差)可以是一种选择。另一种选择是向您的功能集添加 3 个额外的维度,作为所用扫描仪的单热编码(即,对于每个示例,您在适当的扫描仪的位置有一个 1,而其他的为 0)
关于python - 是否可以向 SVM 模型添加协变量(控制不感兴趣的变量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37277647/