Machine Learning Klasifikasi Sederhana dengan Model Decision Tree menggunakan dataset Iris

Camelia Regista
4 min readOct 2, 2021
Source : Pribadi

Dataset Iris merupakan salah satu dataset yang paling terkenal dan populer untuk dapat memahami konsep klasifikasi dalam machine learning. Maka tak heran banyak pemula seperti saya yang ingin mendalami dunia machine learning pasti dimulai mencoba untuk membuat model klasifikasi dengan dataset Iris. Karena memang secara struktur data pun dataset Iris ini tergolong sederhana, jadi memang sangat cocok untuk digunakan sebagai permulaan sebelum berjalan lebih jauh di dunia machine learning.

Perlu diketahui, Dataset iris ini berisi 150 sampel dengan 3 spesies (kelas) bunga Iris.Pada dataset Iris ini juga terdapat 4 atribut yakni : Panjang Sepal, Lebar Sepal, Panjang Petal, Lebar Petal. Sebelum beranjak pada bacaan berikutnya, ada baiknya kita berkenalan dengan apa itu atribut dan fitur ?

Atribut adalah karakterisitik dari objek data, Sedangkan Fitur adalah bahasa sederhananya adalah “input” . pada kasus Iris ini yang dimaksud atribut adalah 4 kelas tadi ‘ panjang sepal, lebar sepal, panjang petal, lebar petal’ . Sedangkan yang dimaksud fitur pada kasus klasifikasi iris ini adalah “nilai dari panjang lebar suatu petal dan sepal”. misal panjang sepal = 8.9, lebar sepal = 9.7, panjang petal = 7.8, lebar petal = 6.6 lalu yang dimaksud fiturnya yang mana ? Nah, yang dimaksud fiturnya adalah angkanya itu (8.9, 9.7, 7.8, 6.6) ini adalah fiturnya.

Baiklah, sekarang kita paparkan sebenarnya tujuan kita membuat model ini untuk apa ? lalu jenis model apa yang digunakan ? kenapa harus menggunakan model ini ? Mari kita jawab!

Jadi, Sebenarnya tujuan dari membuat model klasifikasi dari dataset Iris ini adalah untuk mengetahui dengan kondisi fitur tertentu, algoritma machine learning Decision tree akan mengklasifikasikan pada jenis bunga apa ? tentunya berdasarkan label. Label pada kasus iris ini adalah kelasnya (Spesies) iris itu sendiri yaitu Setosa, Versicolor dan Virginica. Model yang akan kita gunakan pada percobaan kali ini adalah Decision Tree Multiclassification. Kenapa Decision Tree ? dan kenapa harus multiclassification ? ya karena decision tree merupakan salah satu algoritma supervised learning untuk masalah klasifikasi dan regresi, selain itu decisison tree juga salah satu algoritma yang powerfull untuk menyelesaikan masalah yang kompleks dan juga decision tree ini salah satu komponen pembangun utama random forest. Baiklah mari kita beranjak untuk mempresentasikan kodenya.

import pandas as pdfrom sklearn.datasets import load_iris#Baca Datasetiris = pd.read_csv("Iris.csv")#Tampilkan 5 data teratas
iris.head()

Maka output yang dihasilkan adalah :

Nah, berdasarkan visualisasi diatas sepertinya kita hanya membutuhkan kolom kelas saja, sehingga kolom ‘Id’ tidak diperlukan. Lalu bagaimana ? Mari kita hilangkan dengan fungsi drop().

#Menghapus kolom "Id" yang tidak berguna menggunkan fungsi drop()iris.drop('Id', axis=1,inplace=True)

keterangan :
axis=1 adalah sebagai parameter bahwa yang ingin di hapus adalah kolom, kalau axis=0 artinya yang ingin dihapus itu berupa baris. Inplace=True adalah untuk mengetahui posisi parameter modfikasi pada dataframe kita. untuk lebih jelasnya bisa langsung mengunjungi tautan berikut ini ilmudatapy.com

Lalu output dari penggunaan fungsi dropna() adalah menyisakan dataframe tanpa kolom “Id”. Setelah itu langkah yang akan kita tempuh adalah memisahkan atribut data

#Pisahkan atribut
x = iris[['SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm', 'PetalWidthCm']]
y = iris['Species']keterangan :
x : fitur
y : target

Tak selesai sampai disitu, setelah memisahkan atribut antara fitur dan target yang di representasikan oleh variabel x dan y. tahap selanjutnya adalah melatih data dengan fungsi fit(). Kita juga perlu mengimport library DecissionTreeClassifier() dari sklearn.tree

#Melatih data dengan fungsi fit()from sklearn.tree import DecisionTreeClassifier#buat model decision treetree_model = DecisionTreeClassifier()#Melatih datatree_model.fit(x, y)

Setelah membuat model, ini tahap yang paling ditunggu! yeah, mari kita lakukan percobaan pada model yang sudah kita buat. apakah sudah sesuai atau belum ?

#Mencoba modeltree_model.predict([[5.7, 7.8, 4.7, 8.7]])keterangan :
fitur yang dimasukan adalah random

Ternyata output yang dihasilkan dari fitur tersebut adalah ‘Iris -Versicolor’ maksudnya model ini mengklasifikasikan fitur yang diinput pada model ke dalam label yang sebelumnya sudah kita tentukan. Rasanya machine learning tanpa visualisasi terasa hambar. Maka dari itu saya coba ubah informasi klasifikasi menjadi decision tree dengan memanfaatkan library graphviz. Dimana nantinya library ini akan mengekstrak code kita menjadi iris.dot dimana file ini nantinya bisa kita konversi menjadi ektensi PNG melalui website konversi. Berikut ini visualisasi dari decision tree yang dihasilkan melalui library graphviz , membuat data jauh lebih menarik dan terlihat manusiawi.

Sekian, sampai jumpa di project selanjutnya.

--

--