Decision Tree

Badrisrahmatullah
5 min readJul 4, 2023

--

Learning Objective :

· Pengertian algoritma decision tree.

· Contoh penerapan decision tree dalam pemecahan masalah.

· Source code python untuk memperjelas implementasi decision tree.

· Kelebihan dan Batasan decision tree.

· Kesimpulan decision tree

Pengertian

Decision tree atau pohon keputusan adalah salah satu metode populer dalam pembelajaran mesin yang digunakan untuk pengambilan keputusan berdasarkan pemodelan alur logika keputusan. Disebut demikian, karena metode ini membuat struktur pilihan bercabang menyerupai pohon. Decision tree menggambarkan serangkaian keputusan dan konsekuensi yang mungkin terjadi dari suatu keadaan awal[1]. Dalam tulisan ini, kami akan menjelaskan konsep dasar decision tree serta penerapannya dalam berbagai bidang.

Konsep Dasar Decision Tree terdiri dari simpul (node) dan cabang (branch). Setiap simpul mewakili suatu atribut atau fitur yang digunakan dalam pengambilan keputusan, sedangkan setiap cabang mewakili kemungkinan nilai atribut atau fitur tersebut. Daun (leaf) pada decision tree mewakili keputusan yang diambil berdasarkan serangkaian atribut.

Gambar 1 Struktur Decision Tree [1]

Decision tree bekerja dengan membagi dataset menjadi subset yang lebih kecil berdasarkan nilai atribut yang berbeda. Pada setiap langkah, atribut yang memiliki kemampuan membagi dataset dengan cara yang paling baik akan dipilih sebagai simpul pengambilan keputusan berikutnya. Prosedur ini berlanjut hingga seluruh data diklasifikasikan dengan akurasi yang optimal atau hingga kriteria penghentian tertentu tercapai.

Algoritma pembentukan decision tree yang umum digunakan adalah algoritma ID3 (Iterative Dichotomiser 3), C4.5, dan CART (Classification and Regression Trees)[1]. Algoritma-algoritma ini berbeda dalam cara mengukur kualitas pemilihan atribut dan cara mengatasi atribut yang kontinu atau diskrit.

Penerapan Decision Tree

1. Klasifikasi dan Klasifikasi Multikelas Salah satu penerapan paling umum dari decision tree adalah dalam klasifikasi data. Decision tree dapat digunakan untuk memprediksi kategori atau kelas berdasarkan serangkaian atribut. Misalnya, dalam analisis kredit, decision tree dapat digunakan untuk mengklasifikasikan aplikasi kredit menjadi “diterima” atau “ditolak” berdasarkan atribut seperti pendapatan, riwayat kredit, dan sebagainya.

Selain itu, decision tree juga dapat digunakan dalam klasifikasi multikelas di mana terdapat lebih dari dua kelas yang mungkin. Misalnya, dalam pengenalan citra, decision tree dapat digunakan untuk mengklasifikasikan objek menjadi berbagai kategori seperti manusia, mobil, hewan, dan sebagainya.

2. Regresi Selain klasifikasi, decision tree juga dapat digunakan dalam regresi untuk memprediksi nilai kontinu. Dalam regresi, decision tree dapat memodelkan hubungan antara atribut dan nilai target yang kontinu. Misalnya, dalam prediksi harga rumah, decision tree dapat digunakan untuk memprediksi harga rumah berdasarkan atribut seperti lokasi, ukuran, jumlah kamar, dan sebagainya.

3. Pengambilan Keputusan Decision tree dapat digunakan dalam pengambilan keputusan untuk membantu pemecahan masalah kompleks dengan mempertimbangkan berbagai faktor. Misalnya, dalam pengambilan keputusan bisnis, decision tree dapat digunakan untuk membantu dalam memilih strategi pemasaran berdasarkan faktor-faktor seperti anggaran, target pasar, dan keuntungan yang diharapkan.

4. Diagnosis Medis Dalam bidang medis, decision tree dapat digunakan untuk mendiagnosis penyakit berdasarkan gejala dan atribut lainnya. Decision tree dapat membantu dokter dalam mengidentifikasi penyakit dengan menggabungkan informasi medis dan aturan diagnostik yang ada.

Gambar 2 Contoh Decision Tree [1]

Pada Gambar 2, “Income” merupakan Root Node atau Inti, kemudian bercabang membentuk bagian yang diwarnai dengan biru muda DN (Decision Node), lalu bercabang Kembali membentuk bagian berwarna kuning yang disebut dengan LN (Leaf Node). Node dan Branches tersusun dari masing masing tree, dimana setiap node mewakili fitur dalam sebuah kategori yang akan diklasifikasikan dan setiap subset mendefinisikan sebuah nilai yang dapat diambil oleh node.

Source Code implementasi Decision Tree

Berikut code penerapan decision tree yang menggunakan bahasa pemrograman python.

# Mengimport library yang diperlukan

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.tree import DecisionTreeClassifier

from sklearn import metrics

Pertama diperlukan beberapa library sklearn seperti dataset, train test split, DecicionTreeClassifier, dan metrics. Library pertama bertujuan untuk mengunduh data iris dari package. Kemudian library kedua berfungsi untuk membagi dataset menjadi data latih dan data uji. Library ketida adalah algoritma decision tree. Lalu terakhir bertujuan untuk menampilkan data metrics, atau hasil latih model, dapat berupa akurasi, presisi, maupun recall.

# Memuat dataset Iris
iris = load_iris()
X = iris.data
y = iris.target
Gambar 3 Dataset Iris[2]

Perlu diketahui, isi dari dataset ini jika ditampilkan dalam bentuk dataframe terlihat seperti gambar 3. Kemudian setelah selesai mempersiapkan library yang akan digunakan, kita perlu memuat dataset kedalam variable, pada contoh code menggunakan variable iris, serta X untuk menyimpan data iris sepal length, sepal width, petal length, dan petal width, sedangkan variable y untuk data target yang berisi kolom Species.

# Memisahkan dataset menjadi data latih dan data uji
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)

Setelah terpisah dalam variable X dan y, perlu menentukan jumlah data latih dan data uji pada dataset iris, pada contoh ini, rasio perbandingan data latih dan data uji sebesar 70:30, dengan 70% data latih dan 30% data uji.

# Membangun model Decision Tree
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)

Setelah selesai dengan pembagian data latih dan data uji, saatnya membangun model machine learning decision tree, pada contoh, variable clf menyimpan DecisionTreeClassifier() yang menggunakan data latih sebagai argumen.

# Melakukan prediksi pada data uji
y_pred = clf.predict(X_test)
# Evaluasi model menggunakan metrik akurasi
accuracy = metrics.accuracy_score(y_test, y_pred)
print("Akurasi:", accuracy)

Kemudian perlu untuk melakukan prediksi pada data uji untuk mengetahui performa dari model decision tree yang kita buat, dengan menggunakan dan menampilkan variable accuracy untuk menyimpan dan menampilkan skor dari akurasi model, dengan demikian kita dapat melihat seberapa bagus performa model decision tree terhadap dataset iris.

Kelebihan dan Keterbatasan Decision Tree

Keunggulan dan keterbatasan Decision Tree antara lain:

  • Kejelasan: Decision tree mudah dipahami dan diinterpretasikan karena dapat digambarkan secara visual.
  • Skalabilitas: Decision tree dapat mengelola dataset besar dengan cepat dan efisien.
  • Pengambilan Keputusan yang Tepat: Decision tree dapat menghasilkan keputusan yang tepat dengan akurasi yang baik.

Keterbatasan algoritma decision tree antara lain :

  • Overfitting: Decision tree cenderung rentan terhadap overfitting, di mana model terlalu rumit dan tidak dapat digeneralisasi dengan baik pada data baru.
  • Sensitif terhadap Perubahan Data: Decision tree dapat menghasilkan pohon yang berbeda jika data yang sama diubah sedikit.
  • Kesulitan Menangani Data Kontinu: Beberapa algoritma decision tree memiliki kesulitan dalam menangani data yang kontinu atau memiliki banyak nilai unik.

Kesimpulan

Kesimpulan Decision tree adalah metode yang populer dalam pembelajaran mesin untuk pengambilan keputusan. Konsep dasar decision tree melibatkan pembagian dataset berdasarkan atribut untuk mencapai keputusan akhir. Decision tree memiliki berbagai penerapan dalam klasifikasi, regresi, pengambilan keputusan, dan diagnostik medis. Meskipun decision tree memiliki keuntungan, perlu diingat bahwa juga memiliki keterbatasan tertentu. Oleh karena itu, pemilihan algoritma dan penanganan data yang tepat sangat penting dalam penerapan decision tree.

Referensi

[1] B. Charbuty and A. Abdulazeez, “Classification Based on Decision Tree Algorithm for Machine Learning,” J. Appl. Sci. Technol. Trends, vol. 2, no. 01, pp. 20–28, 2021, doi: 10.38094/jastt20165.

[2] MOHAMMAD IMRAN SHAIKH, “Decision Tree — Iris DataSet,” Kaggle, 2020. https://www.kaggle.com/code/shikhnu/decision-tree-iris-dataset (accessed Jun. 24, 2023).

--

--

No responses yet