Klasifikasi Decision Tree
Klasifikasi Data Menggunakan Decision Tree
(Pertemuan 6 Machinelearning)
Klasifikasi pada machine learning banyak sekali macamnya nih sobat cerita. pada pertemuan sebelumnya kita sudah membahas Regresi Linear, Naive Beyes. Sekarang kita akan membahas Menggunakan decision tree.. So seimak terus update di blog ini!
Apa itu Regresi?
Praktikum Menggunakanbahasa pyhton via google colabs
(1) Importing library yang digunakan untuk proses klasifikasi.
import pandas
from pandas.plotting import scatter_matrix
import matplotlib.pyplot as plt
get_ipython().run_line_magic('matplotlib', 'inline')
import numpy as np
from sklearn.tree import DecisionTreeClassifier
(2) Memanggil data yang akan diproses. Dalam contoh ini, data yang digunakan yaitu data iris yang diperoleh dari website UCI Machine Learning.
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'species']
iris = pandas.read_csv(url, names=names)
(3) Memisahkan data yang merupakan fitur dengan data yang merupakan label kelas. Untuk memisahkan data tersebut, maka dapat digunakan method “drop”. Jika method drop() digunakan untuk menghapus kolom, maka sebutkan nama kolom yang ingin dihapus dan set nilai Axis=1 . Sedangkan jika baris yang ingin dihapus maka tetapkan nilai Axis=0. Untuk data yang merupakan fitur disimpan pada variabel X, sedangkan data yang merupakan label kelas disimpan pada variabel y.
X = iris.drop('species', axis=1)
y = iris['species']
(4) Membagi data menjadi data latih (training data) dan data uji (test data). Sebelumnya perlu dilakukan import library dari sklearn.model sehingga dapat memanfaatkan fungsi train_test_split. Data uji yang digunakan yaitu 20% dari keseluruhan data yang ditetapkan dengan nilai test_size=20.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)
(5) Membuat model klasifikasi dari data latih dan data uji yang telah ditetapkan menggunakan decision tree. Model klasifikasi disimpan pada atribut classifier.
classifier = DecisionTreeClassifier()
classifier.fit(X_train, y_train)
(6) Menyimpan hasil prediksi yang diperoleh ke atribut y_pred.
y_pred = classifier.predict(X_test)
(7) Menghitung akurasi dari hasil prediksi klasifikasi dengan menggunakan confussion matrix. Oleh karena itu perlu dilakukan import library sklearn.metrics untuk fungsi classification_report, confusion_matrix.
from sklearn.metrics import classification_report, confusion_matrix
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

(8) Menampilkan hasil prediksi dalam bentuk tabel.
df=pandas.DataFrame({'Actual':y_test, 'Predicted':y_pred})
df

(9) Untuk menampilkan model tree maka perlu instalasi graphvis terlebih dahulu melalui terminal. Kembali pada halaman depan jupyter notebook, pilih new, kemudian pilih terminal sehingga tampilan terminal akan muncul di tab baru.


Pada terminal, ketikkan kode di bawah ini untuk menginstal graphpvis dari cloud anaconda.
conda install -c conda-forge python-graphviz
conda install -c conda-forge/label/broken python-graphviz
conda install -c conda-forge/label/cf201901 python-graphviz
(10) Menyiapkan feature_names dan class_names dimana merupakan variabel yang perlu disiapkan untuk menggunakan graphvis. X.columns digunakan sebagai array yang menyimpan nama fitur ( feature_names ), sedangkan y.columns digunakan sebagai array untuk menyimpan nama kelas ( class_names ).
X.columns = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width']
y.columns = ['Iris-setosa', 'Iris-virginica', 'Iris-versicolor']
(11) Melakukan import library graphvis terlebih dulu kemudian menyimpannya sebagai dot file. Dari dot file tersebut dipanggil sebagai gambar dengan tipe .png.
from sklearn.tree import export_graphviz
# Export as dot file
export_graphviz(classifier, out_file='tree.dot',
feature_names = X.columns,
class_names = y.columns,
rounded = True, proportion = False,
precision = 2, filled = True)
# Convert to png using system command (requires Graphviz)
from subprocess import call
call(['dot', '-Tpng', 'tree.dot', '-o', 'tree.png', '-Gdpi=600'])
# Display in jupyter notebook
from IPython.display import Image
Image(filename = 'tree.png')

Komentar
Posting Komentar