Использование классификационного отчета на model_selection.KFold - PullRequest
0 голосов
/ 01 октября 2019

Я взял эту хорошую реализацию от здесь . Все работает. Однако я пытался добавить еще одну метрику к этой реализации. Метрика, которая мне нужна, называется "ification_report " из sklearn.metrics importification_report. Я заблудился, если бы я попытался добавить это в свой цикл for или после того, как я все закончил. Есть идеи?

# prepare configuration for cross validation test harness
seed = 7

# prepare models
models = []
models.append(('Linear Discriminant Analysis', LinearDiscriminantAnalysis()))
models.append(('Ada Boost Classifier', AdaBoostClassifier()))
models.append(('Decision Tree Classifier', DecisionTreeClassifier()))
models.append(('Extra Trees Classifier', ExtraTreesClassifier()))
models.append(('Random Forest Classifier', RandomForestClassifier()))
#models.append(('Decision Tree Classifier (Cart)', DecisionTreeClassifier()))
#models.append(('Linear Support Vector Classification', LinearSVC()))
#models.append(('Nu-Support Vector Classification', NuSVC()))
#models.append(('Support Vector Classification', SVC()))


# evaluate each model in turn
bestresultvalue = 0
bestresultname = 0
results = []
names = []
scoring = 'accuracy'


for name, model in models:
    # k=10: The value for k is fixed to 10, a value that has been found through experimentation to generally result in a model skill estimate with low bias a modest variance.
    kfold = model_selection.KFold(n_splits=10, random_state=seed) 
    cv_results = model_selection.cross_val_score(model, X, Y, cv=kfold, scoring=scoring)
    results.append(cv_results)
    names.append(name)
    msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())        
    print(msg)

Код / идея судо:

from sklearn.metrics import classification_report
y_true = Y
y_pred = cv_results
target_names = ['class 0', 'class 1', 'class 2']
print(classification_report(y_true, y_pred, target_names=target_names))
...