Belajar SKLearn Cross Validation Split
Library SKLearn menyediakan fungsi cross_val_score untuk menghitung hasil dari cross validation sebuah classifier bawaan sklearn. Pada coding practice kali ini kita akan menggunakan cross_validation_score pada classifier decision_tree. Dataset yang digunakan adalah dataset iris.
Pada Colab kita import semua library yang dibutuhkan di cell pertama. Dataset yang akan kita gunakan adalah dataset iris yang dipakai pada submodul sebelumnya.
- import sklearn
- from sklearn import datasets
- from sklearn.model_selection import cross_val_score
- from sklearn import tree
- iris = datasets.load_iris()
Kemudian kita bagi antara atribut dan label pada dataset.
- x=iris.data
- y=iris.target
Kita akan membuat model machine learning pertama kita yaitu decision tree, menggunakan library scikit learn. Model machine learning juga sering disebut sebagai classifier. Lebih lanjut, variabel clf adalah singkatan dari classifier.
- clf = tree.DecisionTreeClassifier()
Setelah dataset dan model siap, kita bisa menggunakan cross validation untuk mengevaluasi performa dari model machine learning. Fungsi cross_val_score seperti di bawah menerima 4 parameter yaitu, ‘clf’ yang merupakan model machine learning, ‘X’ yang merupakan atribut dari dataset, ‘y’ yang merupakan label dari dataset, dan ‘cv’ yang merupakan jumlah fold yang akan dipakai pada cross validation.
- scores = cross_val_score(clf, x, y, cv=5)
Cross_val_score mengembalikan nilai berupa larik atau array yang terdiri dari akurasi pengujian setiap fold dari dataset. Untuk mencetak dan mengetahui hasilnya, tambahkan kode scores di bawah kode sebelumnya. Tampilannya seperti gambar di bawah ini.
Elemen pertama dari larik menunjukkan nilai 0.96666 yang berarti ketika fold pertama dijadikan validation set dan fold lainnya dijadikan train set, hasil dari pengujian tersebut adalah akurasi sebesar 0.96666.
Melihat akurasi dari seluruh pengujian fold yang memiliki nilai tinggi dan konsisten pada tiap fold, kita mendapatkan gambaran bahwa model kita memiliki performa yang sangat baik.
Secara umum jika hasil dari pengujian tiap fold pada cross validation memiliki nilai yang bervariasi dari 0.85 sampai 0.99, maka model tersebut dapat dikatakan baik