Data Science Dengan Python: Cara Membuat Decision Tree

 

Kali kita akan belajar membuat decision tree sekaligus membuat visualisasinya dengan Google Colab. Decision Tree adalah algoritma pembelajaran supervisi non-parametrik yang digunakan untuk tugas klasifikasi dan regresi. Ini memiliki struktur pohon hierarkis yang terdiri dari simpul akar, cabang, simpul internal, dan simpul daun. 

Decision Tree dibuat berdasarkan data yang didapatkan dari datasets. Datasets adalah sekumpulan data yang memiliki terkadang memiliki banyak field dan value yang tidak konsisten, Sehingga kita sebagai data scientist ditugaskan untuk merapihkannya dan menganalisa untuk mendapatkan keputusan yang baik bagi perusahaan

Salah satu cara yang didapat adalah dengan menggunakan decision tree ini

Kita akan memulainya dengan ngoding menggunakan Python

Pertama buka google colab kalian

Lalu kita akan mengimport library yang dibutuhkan

 

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import matplotlib.pyplot as plt # data visualization
import seaborn as sns # statistical data visualization
%matplotlib inline

 

Kita membutuhkan dataset, dataset ini sudah saya siapkan di dalam google drive. Berikut tampilan dataset yang akan kita gunakan


    

Tips: Sebelum kalian mengolah datasets, pastikan tidak ada nama field di dalamd datasets, ada baiknya nama nama field dimasukkan secara otomatis menggunakan Python


Kita juga akan memasukkan kode sehingga Google Colab bisa membaca isi drive kita

 

data = '/content/drive/MyDrive/datasets/datasets.csv'

df = pd.read_csv(data, header=None)

Selengkapnya kalian bisa membaca disini


Kita akan menamai datasets ini tiap fieldnya dengan memasukkan kode berikut

col_names = ['age', 'income', 'student', 'credit_routing', 'class']
df.columns = col_names
col_names

Kini datasets kita sudah memiliki nama nama field atau kolom


Akan tetapi ada masalah. Datasets kita ini berisi data berupa string, kita harus mengubahnya menjadi angka. Caranya adalah dengan memasukkan kode dibawah ini

import pandas as pd
from sklearn.preprocessing import LabelEncoder

df = pd.DataFrame(df)
label_encoder = LabelEncoder()

df["age"] = label_encoder.fit_transform(df["age"])
df["income"] = label_encoder.fit_transform(df["income"])
df["student"] = label_encoder.fit_transform(df["student"])
df["credit_routing"] = label_encoder.fit_transform(df["credit_routing"])
df["class"] = label_encoder.fit_transform(df["class"])

print(df)

Lalu, kita akan mendefinisikan variable x dan y untuk test dan train

X = df.drop(['class'], axis=1)
y = df['class']

Kita buat Train dan Test 

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.33, random_state = 42)

Setelah itu kita akan membuat model dengan sklearn untuk membuat decision tree

from sklearn.tree import DecisionTreeClassifier

import pandas as pd
from sklearn.preprocessing import LabelEncoder

df = pd.DataFrame(df)
label_encoder = LabelEncoder()

df["age"] = label_encoder.fit_transform(df["age"])

clf_gini = DecisionTreeClassifier(criterion='gini', max_depth=3, random_state=0)

clf_gini.fit(X_train, y_train)

y_pred_gini = clf_gini.predict(X_test)

from sklearn.metrics import accuracy_score

print('Model accuracy score with criterion gini index: {0:0.4f}'. format(accuracy_score(y_test, y_pred_gini)))

y_pred_train_gini = clf_gini.predict(X_train)
y_pred_train_gini

print('Test set score: {:.4f}'.format(clf_gini.score(X_test, y_test)))
# print the scores on training and test set

print('Training set score: {:.4f}'.format(clf_gini.score(X_train, y_train)))

print('Test set score: {:.4f}'.format(clf_gini.score(X_test, y_test)))

plt.figure(figsize=(12,8))

from sklearn import tree

tree.plot_tree(clf_gini.fit(X_train, y_train)) 


 





Post a Comment (0)
Previous Post Next Post