Pembentukan Model Decision Tree Dengan ctree



  • fungsi ctree() dapat ditemukan pada library party dalam paket party. Bagi yang belum memilikinya silakan instal paket party sbb:

install.packages("party")
library("party")
  • Memanggil data iris. Data iris sudah ada dalam R. 
  • Kelemahan ctree() adalah tidak bisa mengolah data yang berbentuk character.
  • Pastikan tidak ada character. Bila ada silakan transform dulu ke bentuk factor.
> # memeriksa data iris
> str(iris)
'data.frame': 150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...


Membuat Model Decision Tree dengan 1 attribute.
  • Disini kita gunakan attribute Sepal.Length dengan target attribute Species
  • Pada bagian formula hanya tertulis Species~Sepal.Length karena cuma attribute Sepal.Length saja yang dipergunakan untuk membuat klasifikasi Spesies bunga iris.
> #membuat decision tree model dengan 1 attribute Sepal.Length
> tree_sl<-ctree(Species~Sepal.Length, data=iris)
> #membuat plot model tree 1 attribute Sepal.Length
> plot(tree_sl)
  • Hasilnya:


Interpretasi Model:

  • Pertama-tama selalu mulai dari root. Decison seluruhnya ditentukan oleh attribute Sepal.Length.
  • Sepal.length yang lebih kecil atau sama dengan 5.4 cm masuk ke terminal node (leaf) 2 di sebelah kiri dan yang lain masuk ke internal node 3.
  • Pada terminal node (leaf) 2:
    • Disebelah atas, ada informasi bahwa 52 bunga yang memiliki Sepal.Length kurang atau sama dengan 5.4cm. 
    • Disebelah bawah menunjukkan klas yaitu tiga species bunga iris.
    • Disebelah kiri ada garis vertikal yang menunjukkan prosentase hasil klasifikasi. Dari 52 bunga ini, 80% nya adalah setosa, 15% masuk ke versicolor, dan sisanya ke klas virginica. 
  • Pada internal node 3,  ditentukan oleh attribute Sepal. Length yang terbagi menjadi 2 grup Ada 43 Bunga dengan Sepal.Length yang kurang atau sama dengan 6.1 cm, sisanya masuk ke node 5. Dari 43 bunga ini, terdapat semua variasi klas yaitu yang terbanyak versicolor 70%, kemudian virginica 20% dan sisanya setosa 10%.   
  • Terakhir, pada internal node 5,  ditentukan oleh tentu saja attribute Sepal. Length terbagi menjadi 2 grup Ada 43 Bunga denga Sepal.Length yang kurang atau sama dengan 7 cm, dimana 60% merupakan virgica dan 40% versicolor. Sedangkan sisanya ada 12 bunga dengan Sepal.Length lebih dari 7cm yang seluruhnya ada virginica.  
  • Jangan lupa tarik kesimpulan juga. Kesimpulannya, bunag iris dengan klas setosa memiliki Sepal.length yang lebih pendek, yang terpanjang adalah virginica, dan versicolor berada ditengah-tengah tidak pendek dan juga tidak panjang.  


Membuat Model Decision Tree dengan 2 attribute.
  • Disini kita gunakan attribute Sepal.Length dan Sepal.Width dengan target attribute Species
  • Format formula adalah Target Attribute ~ Attribute1 + Attribute2 + ... artinya proses klasifikasi target attribute ditentukan oleh beberapa attribuet yaitu attribute1, attribute 2 dst. 
  • Pada bagian formula, kita tambahkan Sepal.Width sehingga formula yang baru menjadi Species~Sepal.Length+Sepal.Width artinya kita membuat klasifikasi Spesies berdasarkan 2 attribute ini.
> #membuat decision tree model dengan attribute Sepal.Length dan Sepal.Width
> tree_slsw<-ctree(Species~Sepal.Length+Sepal.Width, data=iris)
> #membuat plot model tree 2 attribute Sepal.Length dan Sepal.Width
> plot(tree_slsw)
  • Hasilnya:



Membuat Model Decision Tree dengan semua attribute.
  • Disini kita gunakan semua attribute  dengan target attribute Species
  • Perhatikan pada bagian formula ternyata ada cara singkat menuliskan seluruh attribut yaitu cukup dengan satu titik sehingga formulanya menjadi Species~.
> #membuat decision tree model dengan all attributes
> tree_all<-ctree(Species~., data=iris)
> #membuat plot model tree all attributes
> plot(tree_all)
  • Hasilnya:



  • Perhatikan, meskipun kita sudah gunakan semua attribute, namun hanya Petal.Length dan Petal.Width yang terpilih untuk membuat model decision tree.
  • Ini menandakan ada attribute yang penting dan ada juga yang tidak penting.
  • Kesimpulannya attribute Petal.Length dan Petal.Width adalah attribute yang penting untuk membuat model decision tree bunga iris.


Bacaan berikutnya kembali ke Classification









No comments:

Post a Comment