Setelah kita menggunakan beberapa model dengan algoritma KNN dan Decision Tree di modul sebelumnya. Kita akan melihat seberapa baik performa dari kedua model tersebut menggunakan model evaluation.
Setiap machine learning memiliki matriks evaluasi berbeda-beda bergantung pada matriks klasifikasi yang ingin kita dahulukan.
Confusion Matrix
Confusion matrix atau matriks kekeliruan adalah matriks yang menampilkan banyaknya nilai prediksi dan nilai aktual data.
True Damaging (TN) merepsentasikan banyaknya sampel negatif (bukan purpose) yang diklasifikasikan (diprediksi) dengan benar. True Optimistic (TP) merepsentasikan banyaknya sampel positif (purpose) yang diklasifikasikan (diprediksi) dengan benar.
False Damaging (FN) merepresentasikan banyaknya sampel negatif (bukan purpose) yang diklasifikasikan (prediksi) dengan salah. FN disebut juga sebagai kesalahan/galat tipe 2 yang sangat berbahaya. Sementara itu, False Postive (FP) menggambarkan banyaknya sampel positif (purpose) yang diklasifikasikan dengan salah. FP disebut juga kesalahan/galat tipe 1.
Accuracy
Akurasi menggambarkan keakuratan model dalam mengklasifikasikan data dengan benar. Semakin besar nilai akurasi, model machine learning semakin baik dalam memprediksi data.
Recall
Recall atau sensitivity menggambarkan tingkat keberhasilan model dalam mengembalikan informasi. Semakin besar nilai recall, semakin baik model dalam memprediksi.
Precision
Presisi menggambarkan keakuratan model dalam mengembalikan semua nilai positif (purpose). Semakin besar nilai presisi, semakin baik model dalam memprediksi data.
Commerce Off
F1 Score
F1 score menampilkan perbandingan antara rata-rata precision dan recall yang telah dibobotkan. F1 score digunakan sebagai acuan ketika jumlah False Optimistic (FP) dan False Damaging (FN) tidak simetris.
Demo
Untuk mengevaluasi model, kita dapat menggunakan fungsi confusion_matrix() dan classification_report() dari sklearn.metrics.
from sklearn.metrics import confusion_matrix, classification_report
#kita lihat CM dari model alternative tree
print(confusion_matrix(y_test, y_test_pred_dt))'''OUTPUT
[[ 2 4]
[ 7 25]]
'''
#kita lihat Classification Report dari model alternative tree
print(classification_report(y_test, y_test_pred_dt))
Output:
Atau kita juga dapat melihat recall, presion, accuracy, dan f1 score masing-masing dari sklearn.metrics.
from sklearn.metrics import recall_score, precision_score, accuracy_score, f1_score
#model alternative tree
print('recall:', recall_score(y_test, y_test_pred_dt))
print('precision:', precision_score(y_test, y_test_pred_dt))
print('accuracy:', accuracy_score(y_test, y_test_pred_dt))
print('f1 score:', f1_score(y_test, y_test_pred_dt))
Output:
Research Further by the use of myskill.id/course/data-science-model-evaluation-in-movie-analytics