news

Senin, 15 Juni 2020

Belajar SKLearn Decision Tree

Kode program yang akan diajarkan di sini bisa diunduh di tautan berikut ini, untuk membukanya upload berkasnya dari Google Colab.
Pada sub modul latihan ini, kita akan menggunakan data yang lebih kompleks dari sebuah numpy array. Untuk coding practice kali ini kita akan memakai dataset Iris, salah satu dataset paling populer yang dipakai dalam belajar ML.
Dataset iris terdiri dari 4 atribut yaitu panjang sepal, lebar sepal, panjang petal, dan lebar petal. Terdapat 3 kelas target pada dataset ini. Data ini dipakai untuk masalah klasifikasi, di mana kita bisa memprediksi spesies dari sebuah bunga berdasarkan atribut-atribut yang diberikan.
Pertama kita akan mengimpor library yang dibutuhkan dan mempersiapkan dataset. Dataset dapat anda unduh di tautan berikut. Setelah data diunduh, masukkan berkas Iris.csv ke dalam Colab. Lalu jangan lupa konversi dataset menjadi dataframe Pandas.


  1. from sklearn.tree import DecisionTreeClassifier

  2. import pandas as pd

  3. from sklearn.datasets import load_iris

  4. iris = pd.read_csv('Iris.csv')


Untuk melihat informasi mengenai data, Anda bisa memanggil fungsi .head() pada dataframe.


  1. iris.head()



Tampilan iris.head() saat dijalankan sebagai berikut.

20200430194633ed099255911d0df57032af369f28d8eb.pngDapat dilihat bahwa terdapat kolom yang tidak penting pada dataset yaitu kolom ‘Id’. Untuk menghilangkan kolom tersebut kita bisa menggunakan fungsi drop().


  1. iris.drop('Id',axis=1,inplace=True)


Selanjutnya kita pisahkan antara atribut dan label untuk pelatihan model kita.


  1. X = iris[['SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm', 'PetalWidthCm' ]]

  2. y = iris['Species']


Kemudian buat model decision tree kita. Terakhir kita melatih model kita dengan menggunakan fungsi fit(). Keluaran dari cell di bawah menunjukkan bahwa model decision tree telah dilatih dan parameter-parameternya juga ditampilkan. Penjelasan mengenai parameter akan dibahas di modul-modul selanjutnya.


  1. # membuat model Decision Tree

  2. tree_model = DecisionTreeClassifier() 

  3. # melakukan pelatihan model terhadap data

  4. tree_model.fit(X, y)


Kita bisa mencoba model yang telah kita buat untuk memprediksi spesies dari sebuah bunga Iris. Masih ingat bukan, bahwa atribut yang menjadi masukan dari model adalah panjang sepal, lebar sepal, panjang petal, dan lebar petal. Kita masukkan nilai yang sesuai dengan format tersebut secara berurutan dalam satuan centimeter. Pada kode di bawah kita ingin memprediksi spesies dari sebuah bunga iris yang memiliki panjang sepal 6,2 centimeter, lebar sepal 3,4 centimeter, panjang petal 5,4 centimeter, dan lebar petal 2,3 centimeter. Hasil prediksi dari model kita adalah virginica.


  1. # tree_model.predict([[SepalLength, SepalWidth, PetalLength, PetalWidth]])

  2. tree_model.predict([[6.2, 3.4, 5.4, 2.3]])


Jika kode tersebut dijalankan, maka tampilannya seperti di bawah ini.
20200430195410b8c2cf9a56cca17f420e48b06d4e77b4.png
Kita juga bisa melihat visualisasi dari decision tree yang kita buat terhadap data dengan menggunakan library Graphviz. Hasil dari graphviz adalah dot file yang akan muncul pada folder file pada panel di kiri Colab.


  1. from sklearn.tree import export_graphviz

  2. export_graphviz(

  3.     tree_model,

  4.     out_file = "iris_tree.dot",

  5.     feature_names = ['SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm', 'PetalWidthCm'],

  6.     class_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica' ],

  7.     rounded= True,

  8.     filled =True

  9. )


Setelah berhasil dijalankan, hasil dari iris_tree.dot terlihat seperti di bawah ini.
202004302237153b788bdee82a9ee4b5ae306daa70003d.png
Untuk melihat visualisasi decision tree kita bisa mengkonversi dot file ke dalam file png. Untuk mengunduh berkas iris_tree.dot pada gambar di atas, kita dapat melakukan klik kanan pada berkas tersebut dan mengunduhnya. Untuk konversi berkas dengan ekstensi dot menjadi berkas png dapat dilakukan di situs https://convertio.co/id/dot-png/.
20200430195649364809cc4d0ab885bfb4bda5c8262b0f.jpeg
Selamat! Anda telah berhasil membuat sebuah model decision tree untuk klasifikasi spesies bunga Iris. Anda juga telah berhasil menguji model anda untuk memprediksi spesies dari sebuah bunga iris. Untuk belajar lebih mendalam tentang decision tree, kunjungi tautan berikut yah