【发布时间】:2023-03-15 03:50:01
【问题描述】:
我对机器学习和 python 非常陌生,我正在尝试建立一个模型来预测患者(N=200)与对照组(N=200)形成结构神经影像数据。在最初的预处理之后,我将神经影像数据重新塑造成一个二维数组,我构建了以下模型:
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) 进行扫描。无论如何这可以添加到上面的模型中吗?
我读到做之前的特征选择可能会有所帮助。但是,当这些特征可能与扫描仪相关时,我不想简单地提取有意义的特征。事实上,我想不基于扫描仪对患者和控制进行分类(即控制扫描仪)。
对此的任何想法将不胜感激, 谢谢你
【问题讨论】:
-
只是一个注释,参数
C的网格应该是日志间隔的。k_range = np.logspace(-1, 1, 100) -
感谢@ZichenWang 的建议,将更新代码。
-
在我看来,您正在寻找某种形式的规范化,其中扫描仪错误被抽象出来。我不确定这些方法是什么,但也许更广泛的术语可能会有所帮助。
-
感谢@JuanCarlosCoto 我会阅读更多关于标准化及其工作原理的内容。
标签: python machine-learning scikit-learn svm