[вывод путаницы и баллов] [1] Я новичок в машинном обучении и работал с ансамблевыми моделями. На основании онлайн-чтения я понимаю, что, как только мы подберем модель в поезде, мы должны оценить точность данных тестирования. Однако я не уверен, как это сделать?
Я пытался предсказать, используя два метода (см. Код), основываясь на моем понимании, но когда я печатаю матрицу путаницы и пересчитываю оценку точности, ни один из методов не соответствует точности сообщили?
Может ли кто-нибудь подсказать мне правильный метод предсказания? Кроме того, я был бы признателен, если бы я мог понять, почему результаты не соответствуют?
Это мой первый пост - пожалуйста, дайте мне знать, если что-то не ясно, или я должен предоставить дополнительную информацию
# Get some classifiers to evaluate
seed = 1075
np.random.seed(seed)
# Create classifiers
rf = RandomForestClassifier()
et = ExtraTreesClassifier()
knn = KNeighborsClassifier()
svc = SVC()
rg = RidgeClassifier()
custom_scorer = make_scorer(accuracy_score, greater_is_better=True)
k_fold = StratifiedKFold(n_splits=10)
clf_array = [rf, et]
for clf in clf_array:
vanilla_scores = cross_val_score(clf, x_train_res, y_train_res, cv=k_fold, n_jobs=-1,scoring=custom_scorer)
bagging_clf = BaggingClassifier(clf, max_samples=0.4, max_features=10, random_state=seed)
# method 1
bagging_scores = cross_val_score(bagging_clf, x_train_res, y_train_res, cv=k_fold, n_jobs=-1)
bagging_clf = bagging_clf.fit(x_train_res, y_train_res)
y_predict = bagging_clf.predict(x_test)
cm=metrics.confusion_matrix(y_test, y_predict, labels=['1', '0'])
print("confusion matrix below:")
print(cm)
# method 2
y_predict1= cross_val_predict(bagging_clf, x_test, y_test, cv=k_fold, n_jobs=-1)
cm=metrics.confusion_matrix(y_test, y_predict1, labels=['1', '0'])
print("confusion matrix below:")
print(cm)
# print(metrics.classification_report(y_test,y_predict, labels=[1, 0]))
print ("Mean of: {1:.3f}, std: (+/-) {2:.3f} [{0}]".format(clf.__class__.__name__, vanilla_scores.mean(), vanilla_scores.std()))
print ("Mean of: {1:.3f}, std: (+/-) {2:.3f} [Bagging {0}]\n".format(clf.__class__.__name__, bagging_scores.mean(), bagging_scores.std()))
```[output][2]
[1]: https://i.stack.imgur.com/Eky7r.png
[2]: https://i.stack.imgur.com/sDhXV.png