使用SVM做情感分析时StratifiedKFold参数报错的解决求助
解决StratifiedKFold的TypeError问题
我来帮你搞定这个问题!你遇到的错误是因为scikit-learn版本更新带来的参数变化,加上初始化方式有误,具体修正如下:
错误原因拆解
- 参数名已更新:在scikit-learn的新版本中,
StratifiedKFold的构造参数从旧版的n_folds改成了n_splits,继续使用n_folds自然会触发TypeError。 - 无需提前传入数据集:初始化
StratifiedKFold时不需要传入liked_train,GridSearchCV会自动用你后续传入的训练数据来完成分层交叉验证的划分工作。
修正后的代码
grid_svm = GridSearchCV( pipeline_svm, param_grid=param_svm, refit=True, n_jobs=-1, scoring='accuracy', cv=StratifiedKFold(n_splits=5), # 替换参数名+移除多余的数据集参数 )
额外小贴士
如果不确定自己的scikit-learn版本,可通过以下代码查看:
import sklearn print(sklearn.__version__)
从0.20版本开始,n_folds就被标记为废弃,官方推荐使用n_splits,所以直接用新版参数即可适配绝大多数场景。
内容的提问来源于stack exchange,提问作者Ashutosh Eve
相关产品推荐
相关产品推荐

