Как экспортировать / распечатать классификатор подробных результатов для каждого наблюдения? - PullRequest
0 голосов
/ 01 марта 2020

Я использовал 2 классификатора для прогнозирования бинарных окончательных результатов учащегося (успех или неудача):

clfs = [
        GradientBoostingClassifier(n_estimators=100, max_depth=2,random_state=0),
        XGBClassifier(n_estimators=100, max_depth=2,random_state=0)
    ]

Ниже приведены итоговые общие показатели точности, отзыва, f1-оценки, поддержки и точности - но Мне было просто интересно, как распечатать CSV-файл каждого наблюдения, было ли оно предсказано правильно или нет (да / нет) вместе с назначенным идентификатором учащегося

for clf in clfs:
print('Result of: ',clf)
train_and_cross_validation(clf)

print(rs.score(X_test,y_test))
y_pred = rs.predict(X_test)
report = classification_report(y_test, y_pred)
print(report)
print(confusion_matrix(y_test, y_pred))

1 Ответ

0 голосов
/ 01 марта 2020

Вместо того, чтобы печатать переменные, добавьте их в pandas фрейм данных, а затем выведите этот фрейм данных в файл .csv.

import pandas as pd

#Create an empty dataframe
df2 = pd.DataFrame({"Report":[0], 
"Confusion_Matrix":[0],
"Report":[0],
"RS_Value":[0],
"CLF":[0]})

for clf in clfs:
    print('Result of: ',clf)
    train_and_cross_validation(clf)

    rs_value = (rs.score(X_test,y_test))
    y_pred = rs.predict(X_test)
    report = classification_report(y_test, y_pred)
    print(report)
    confusion_m = (confusion_matrix(y_test, y_pred))

#Creates a new line for the dataframe from the data we just calculated
    df2 = pd.DataFrame({"Report":[report], 
    "Confusion_Matrix":[confusion_m],
    "RS_Value":[rs_value],
    "CLF":[clf]})

#adds that line onto the original dataframe
    df1 = df1.append(df2)

После завершения всех циклов выводите результаты в CSV-файл

df1.to_csv('output.csv')
...