Loops 如何在循环中生成输出名称?
我正在对两个模型进行交叉验证:Loops 如何在循环中生成输出名称?,loops,cross-validation,Loops,Cross Validation,我正在对两个模型进行交叉验证: from sklearn.naive_bayes import GaussianNB from sklearn.neighbors import KNeighborsClassifier NBC = GaussianNB() KNN = KNeighborsClassifier(n_neighbors=1, p=2) #Cross validation from sklearn.model_selection import RepeatedStratifie
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier
NBC = GaussianNB()
KNN = KNeighborsClassifier(n_neighbors=1, p=2)
#Cross validation
from sklearn.model_selection import RepeatedStratifiedKFold
cv_method = RepeatedStratifiedKFold(n_splits=5,
n_repeats=3,
random_state=999)
### hiperparamet set for models:
params_KNN = {'n_neighbors': [1, 2, 3, 4, 5, 6, 7], 'p': [1, 2, 5]}
params_NBC = {'var_smoothing': np.logspace(0,-9, num=100)}
from sklearn.model_selection import GridSearchCV
## Defining the models
from sklearn.model_selection import GridSearchCV
##==============================================================================
gs_KNN = GridSearchCV(estimator=KNeighborsClassifier(),
param_grid=params_KNN,
cv=cv_method,
verbose=1, # verbose: the higher, the more messages
scoring='roc_auc',
return_train_score=True)
##==============================================================================
gs_NBC = GridSearchCV(estimator=NBC,
param_grid=params_NBC,
cv=cv_method,
verbose=1,
scoring='roc_auc')
##==============================================================================
我想制作循环来定义网格。我真的有更多的模型,制作循环是值得的。我做了如下循环,但我犯了一个错误
from sklearn.model_selection import GridSearchCV
classifiers = [KNN,NBC]
params = [params_KNN,params_NBC]
names = ['gs_KNN','gs_NBC']
for w,t,m in zip(classifiers, params, names):
GridSearchCV(estimator=w,
param_grid=t,
cv=cv_method,
verbose=1, # verbose: the higher, the more messages
scoring='roc_auc',
return_train_score=True)
“但我犯了个错误”——什么错误?发布完整的错误信息/请详细描述错误。“但我犯了一个错误”——什么错误?请发布完整的错误信息/详细描述错误。