Data Iris Dengan Algortima Decision Tree

  produk, Umum
#Import Library yang diperlukasn
import pandas
import numpy
import  matplotlib.pyplot as plt
from sklearn import  tree
import  graphviz
from sklearn.model_selection import  train_test_split
from sklearn import metrics

Diatas merupakan paket python yang diperlukan untuk data mining.

In [2]:

#mengambil Data CSV 

file = pandas.read_csv("https://raw.githubusercontent.com/ullilfahri/OpenData/master/IRIS.csv/") print(file)
     sepal_length  sepal_width  petal_length  petal_width    species
0             5.1          3.5           1.4          0.2     setosa
1             4.9          3.0           1.4          0.2     setosa
2             4.7          3.2           1.3          0.2     setosa
3             4.6          3.1           1.5          0.2     setosa
4             5.0          3.6           1.4          0.2     setosa
..            ...          ...           ...          ...        ...
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica

[150 rows x 5 columns]

Ditas merupakan data iris yang digunakan. Dengen total baris 150 data iris dan terdapat 5 column.

In [3]:

#Sumarry Data
sumary = file.describe()
print(sumary)
       sepal_length  sepal_width  petal_length  petal_width
count    150.000000   150.000000    150.000000   150.000000
mean       5.843333     3.054000      3.758667     1.198667
std        0.828066     0.433594      1.764420     0.763161
min        4.300000     2.000000      1.000000     0.100000
25%        5.100000     2.800000      1.600000     0.300000
50%        5.800000     3.000000      4.350000     1.300000
75%        6.400000     3.300000      5.100000     1.800000
max        7.900000     4.400000      6.900000     2.500000

Data di atas menujukan ringkasan data statistis dari data iris.

In [6]:

#Visualiasi Data
file.plot()
plt.show

file.hist()
plt.show

Out[6]:

<function matplotlib.pyplot.show(*args, **kw)>

Data visualisasi di atas merupakan perbandingan dari setiap column.

In [14]:

#Conver Data Menjadi Array
arraydata = file.values
x = arraydata[:,0:4]
y = arraydata[:,4]

Mewakili dari setiap variabel

X : sepal_lengthsepal_widthpetal_lengthpetal_width

Y : Species

In [10]:

#membuat Data Training dan Testing Dengan Nilai 80 % Training dan 20 % Testing
X_train, X_test, y_train, y_test = train_test_split( x, y, test_size=0.7, random_state=1)

Membuat Data Testing dan Training Dengan ketentukan 80 % Data digunakan untuk Training dan 20 % Untuk Testing

In [11]:

#Evaluasi Algoritma
decisiontree = tree.DecisionTreeClassifier()
algoritma = decisiontree.fit(X_train,y_train)

prediksi = decisiontree.predict(X_test)

akurasi = metrics.accuracy_score(y_test,prediksi)
ayi = 'Akurasi Algoritma  ', akurasi * 100 , ' %'

print(ayi)
('Akurasi Algoritma  ', 93.33333333333333, ' %')

Algortima decision tree dapat diterima dengan baik dikarenakan nilai akurasi prediksi mencapai 93.33 %

In [12]:

#Visualisasi Algoritma
tree = tree.export_graphviz(algoritma)
grap = graphviz.Source(tree)
grap.render()

Out[12]:

'Source.gv.pdf'
digraph Tree {
node [shape=box] ;
0 [label="X[2] <= 2.6\ngini = 0.663\nsamples = 45\nvalue = [17, 15, 13]"] ;
1 [label="gini = 0.0\nsamples = 17\nvalue = [17, 0, 0]"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label="X[2] <= 5.0\ngini = 0.497\nsamples = 28\nvalue = [0, 15, 13]"] ;
0 -> 2 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;
3 [label="X[3] <= 1.6\ngini = 0.208\nsamples = 17\nvalue = [0, 15, 2]"] ;
2 -> 3 ;
4 [label="gini = 0.0\nsamples = 14\nvalue = [0, 14, 0]"] ;
3 -> 4 ;
5 [label="X[0] <= 5.75\ngini = 0.444\nsamples = 3\nvalue = [0, 1, 2]"] ;
3 -> 5 ;
6 [label="gini = 0.0\nsamples = 2\nvalue = [0, 0, 2]"] ;
5 -> 6 ;
7 [label="gini = 0.0\nsamples = 1\nvalue = [0, 1, 0]"] ;
5 -> 7 ;
8 [label="gini = 0.0\nsamples = 11\nvalue = [0, 0, 11]"] ;
2 -> 8 ;
}

In [13]:

#Membuat Prediksi
#jika SL : 1 , SW : 3 , Pl : 3 , PW : 4 Termasuk Dalam kategori Apa ?

prediksidata = decisiontree.predict([[1,3,3,4]])
print(prediksidata)
['virginica']
 

Di atas merupakan studi kasus Untuk memprediksi species dari IRIS
Dengan Ketentuan:
SL : 1
SW : 3
PL : 3
PW : 4

Dari di atas termasuk dalam kategori species apakah ?

Dari hasil perhitungan algoritma dapat diketahuai iris berdasarkan data di atas adalah virginica

LEAVE A COMMENT