Можно ли использовать KFold и GridsearchCV вместе или это может привести к перегонке?
Я пытался использовать KFold и GridsearchCV как независимо (по очереди), так и в комбинации (в одной командной строке), ноне знаю, имеет ли это какое-то значение для моей матрицы путаницы, поскольку возвращает только TP и FP с обоими подходами.Там не было никакой разницы в матрице путаницы.Кроме того, уточнение параметров не привело к изменениям, за исключением перемещения TP и FP в TN и FN с одинаковыми назначенными номерами.
from sklearn import datasets, svm
from sklearn.metrics import roc_auc_score
kf = KFold(n_splits=10, shuffle=False, random_state=None)
parameter_grid = [
{'C': [0.1, 1, 10, 50], 'kernel':['linear'],
'gamma': [0.0001, 0.001, 0.01, 0.1, 1],
'class_weight': ['balanced', {1:2}, {1:3}, {1:4}, {1:5}]
},
{'C': [0.1, 1, 10, 50], 'kernel':['rbf'],
'gamma': [0.0001, 0.001, 0.01, 0.1, 1],
'class_weight': ['balanced', {1:2}, {1:3}, {1:4}, {1:5}]
}
]
# Generate an accuracy object with the classifier and grid parameters.
clf_stand_acc = GridSearchCV(clf_svc,
param_grid = parameter_grid,
cv=kf,
n_jobs = -1)
clf_stand_acc.fit(X_train_std, y_train)
y_predict_acc = clf_stand_acc.predict(X_test)
# Generate an auc object with the classifier and grid parameters.
clf_stand_auc = GridSearchCV(clf_svc,
param_grid = parameter_grid,
cv=kf,
n_jobs = -1,
scoring = 'roc_auc')
clf_stand_auc.fit(X_train_std, y_train)
y_predict_auc = clf_stand_auc.predict(X_test)
Я получил следующее:
Количество экземпляров для обучения:456 Количество тестов: 114 Точность SVC-поезда 0,63158 Точность SVC-теста 0,67544 Точность отзыва. Поддержка f1-баллов
0 0.00 0.00 0.00 37
1 0.68 1.00 0.81 77
в среднем / всего 0,46 0,68 0,54 114
[[0 37] [0 77]]
Я ожидал что-то вроде следующего:
Количество экземпляров для обучения: 456 Количество тестов: 114 Точность SVC-поезда 0,79158 Точность теста SVC 0,77544 Точность отзыва f1-счетподдержка
0 0.00 0.00 0.00 37
1 0.68 1.00 0.89 77
в среднем / 0,59 0,68 0,74 114
[[35 2] [1 76]]