首页 > 解决方案 > TypeError: __init__() 得到了一个意外的关键字参数 'n_folds',sentiment_analysis_with_SVM

问题描述

我正在尝试实现 svm 进行情绪分析,我试图实现这个 gitlink https://github.com/jatinwarade/Sentiment-analysis-using-SVM/blob/master/SVM.ipynb

from sklearn.model_selection import ShuffleSplit
from sklearn.model_selection import StratifiedKFold

我提到了这个,因为它说将交叉原点更改为model_selection,因为它被贬低了错误:__init__()得到了一个意外的关键字参数'n_splits' 所以我用这个替换

grid_svm = GridSearchCV(
    pipeline_svm, #object used to fit the data
    param_grid=param_svm, 
    refit=True,  # fit using all data, on the best detected classifier
    n_jobs=-1,  # number of cores to use for parallelization; -1 for "all cores" i.e. to run on all CPUs
    scoring='accuracy',#optimizing parameter
    cv=StratifiedKFold(liked_train,n_folds=5),
)

这返回错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-49-61dd1e818fa4> in <module>
      5     n_jobs=-1,  # number of cores to use for parallelization; -1 for "all cores" i.e. to run on all CPUs
      6     scoring='accuracy',#optimizing parameter
----> 7     cv=StratifiedKFold(liked_train,n_folds=5),
      8 )

TypeError: __init__() got an unexpected keyword argument 'n_folds'

请帮我解决这个错误

标签: python-3.xscikit-learnsvmsentiment-analysissklearn-pandas

解决方案


正如您在文档中看到的那样model_selected.StrafiedKFold,没有调用关键字参数n_folds,您确实应该使用n_splits.

但是请注意,数据应该作为参数传递给验证器,这样做实际上liked_train是作为 的参数传递的n_splits,这是行不通的。相反,您应该只在初始化后将数据传递给fit您的。grid_svm


推荐阅读