Я делаю проект машинного обучения, где мне нужно выбрать наибольшее значение cv_results классификатора. Как автоматически выбрать наибольшее значение классификатора после того, как все значения рассчитаны и сохранены в одной переменной cv_results?
models = []
models.append(('LR', LogisticRegression()))
models.append(('KNN', KNeighborsClassifier()))
models.append(('NB', GaussianNB()))
models.append(('SVM', SVC()))
maxval = models[0] # initialize max to first element
results = []
names = []
storeresults = []
for name, model in models:
kfold = model_selection.KFold(n_splits=10, random_state=seed)
cv_results = model_selection.cross_val_score(model, X_tr, Y_tr, cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std()
print(msg)
maxval = max(results)
#print(maxval)
print('The best classifier is ' , maxval)
Мой вывод:
LR: 0.552291 (0.021477)
SVM: 0.897305 (0.015317)
KNN: 0.884636 (0.016431)
NB: 0.609434 (0.026586)
The best classifier is 0.654986522911 NB
Это должен был быть SVM, но как мне это сделать?
первое число после имени является средним значением результатов, а числа в скобках являются стандартным отклонением. Когда я бегу в своем питоне spyder, он выбирает NB (Наивный Байес) вместо SVM (Support Machine Vector).