是否可以在SVM模型中添加协变量(控制一个无关变量)?

我对机器学习和Python非常新手,正在尝试构建一个模型来预测患者(N=200)与对照组(N=200)的结构性神经影像数据。在初始预处理中,我将神经影像数据重塑为一个二维数组后,构建了以下模型:

from sklearn.svm import SVCsvc = SVC(C=1.0, kernel='linear')from sklearn.grid_search import GridSearchCVfrom numpy import rangek_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到150号受试者使用扫描仪1扫描,101到300号受试者使用扫描仪2扫描,301到400号受试者使用扫描仪3扫描)。有没有什么方法可以将这个因素加入到上面的模型中?

我读到过,先进行特征选择可能会有帮助。然而,我不希望简单地提取有意义的特征,因为这些特征可能与扫描仪有关。实际上,我希望对患者和对照组的分类不是基于扫描仪(即控制扫描仪的影响)。

任何建议都会受到欢迎,谢谢


回答:

为了诊断,你可以查看每个扫描仪的数据分布情况,以判断你所追求的方向是否有前景。正如有人已经建议的,标准化(例如,每个扫描仪的均值和方差标准化)可以是一个选项。另一个选项是向你的特征集添加3个额外的维度,作为扫描仪的独热编码(即,对于每个示例,你在相应扫描仪的位置上有一个1,其他位置为0)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注