Je suis la formation d'un modèle de classification de régression logistique et d'essayer de comparer les résultats en utilisant la matrice de confusion, et le calcul de la précision, le rappel, la précision du code est donnée ci-dessousprecision_recall_fscore_support retourne les mêmes valeurs pour la précision, la précision et le rappel
# logistic regression classification model
clf_lr = sklearn.linear_model.LogisticRegression(penalty='l2', class_weight='balanced')
logistic_fit=clf_lr.fit(TrainX, np.where(TrainY >= delay_threshold,1,0))
pred = clf_lr.predict(TestX)
# print results
cm_lr = confusion_matrix(np.where(TestY >= delay_threshold,1,0), pred)
print("Confusion matrix")
print(pd.DataFrame(cm_lr))
report_lr = precision_recall_fscore_support(list(np.where(TestY >= delay_threshold,1,0)), list(pred), average='micro')
print ("\nprecision = %0.2f, recall = %0.2f, F1 = %0.2f, accuracy = %0.2f\n" % \
(report_lr[0], report_lr[1], report_lr[2], accuracy_score(list(np.where(TestY >= delay_threshold,1,0)), list(pred))))
print(pd.DataFrame(cm_lr.astype(np.float64)/cm_lr.sum(axis=1)))
show_confusion_matrix(cm_lr)
#linear_score = cross_validation.cross_val_score(linear_clf, ArrX, ArrY,cv=10)
#print linear_score
les résultats attendus sont
Confusion matrix
0 1
0 4303 2906
1 1060 1731
precision = 0.37, recall = 0.62, F1 = 0.47, accuracy = 0.60
0 1
0 0.596893 1.041204
1 0.147038 0.620208
cependant mes sorties sont
Confusion matrix
0 1
0 4234 2891
1 1097 1778
precision = 0.60, recall = 0.60, F1 = 0.60, accuracy = 0.60
0 1
0 0.594246 1.005565
1 0.153965 0.618435
Comment puis-je obtenir des résultats corrects?
Parfait! ...................... – Ani