Berbagi teknologi

Pengantar algoritma pohon keputusan, prinsip dan implementasi kasus

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Algoritma pohon keputusan adalah algoritma pembelajaran mesin yang sangat populer yang dapat digunakan untuk tugas klasifikasi dan regresi. Berikut ini adalah pengenalan mendetail tentang algoritma pohon keputusan, termasuk prinsip dan implementasi kasus, serta kode Python yang sesuai.

Pengantar algoritma pohon keputusan

konsep dasar

Pohon keputusan adalah struktur pohon yang digunakan untuk klasifikasi atau regresi data. Ini terdiri dari node dan edge, di mana setiap node internal mewakili pengujian suatu fitur, setiap cabang mewakili hasil pengujian, dan setiap node daun mewakili kategori atau nilai regresi.

Proses membangun

Proses konstruksi pohon keputusan biasanya mencakup langkah-langkah berikut:

  1. Pilih fitur terbaik: Memilih fitur terbaik untuk membagi kumpulan data menurut kriteria tertentu (seperti perolehan informasi, indeks Gini, dll.).
  2. Buat simpul: Pisahkan kumpulan data menggunakan fitur terbaik dan buat node baru untuk setiap cabang.
  3. Membangun subpohon secara rekursif: Proses pemilihan fitur terbaik dan pemisahan kumpulan data diulangi untuk setiap node anak hingga kondisi penghentian terpenuhi (seperti kemurnian node mencapai tingkat tertentu atau kedalaman pohon mencapai nilai yang telah ditentukan).
  4. Bangun simpul daun: Node daun dibuat ketika pemisahan tidak lagi diperlukan, biasanya label kelas mayoritas untuk pohon klasifikasi, atau rata-rata semua titik data dalam subset untuk pohon regresi.
kriteria terpisah
  • perolehan informasi: Mengukur pengurangan ketidakpastian dalam klasifikasi kumpulan data berdasarkan fitur.
  • indeks gini: Mengukur kemurnian kumpulan data. Semakin kecil indeks Gini, semakin tinggi kemurnian kumpulan data.
  • Kesalahan kuadrat rata-rata minimum (MSE): Membagi kriteria untuk pohon regresi.

Implementasi kasus

Berikut ini adalah kasus klasifikasi pohon keputusan yang diimplementasikan menggunakan Python dan perpustakaan scikit-learn. Kami akan menggunakan kumpulan data Iris yang terkenal, yang berisi fitur dan kategori tiga bunga iris (Setosa, Versicolour, Virginica).

1. Persiapan data
  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. # 加载数据集
  4. iris = load_iris()
  5. X, y = iris.data, iris.target
  6. # 拆分数据集为训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Latih model pohon keputusan
  1. from sklearn.tree import DecisionTreeClassifier
  2. # 初始化决策树分类器
  3. clf = DecisionTreeClassifier()
  4. # 训练模型
  5. clf.fit(X_train, y_train)
Model evaluasi
  1. from sklearn.metrics import accuracy_score
  2. # 预测测试集
  3. y_pred = clf.predict(X_test)
  4. # 计算准确率
  5. accuracy = accuracy_score(y_test, y_pred)
  6. print(f"Accuracy: {accuracy:.2f}")
Pohon keputusan visual
  1. import matplotlib.pyplot as plt
  2. from sklearn.tree import plot_tree
  3. # 可视化决策树
  4. plt.figure(figsize=(12, 12))
  5. plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
  6. plt.show()

Meringkaskan:

Kode di atas menunjukkan cara menggunakan perpustakaan scikit-learn untuk memuat kumpulan data Iris, melatih pengklasifikasi pohon keputusan, mengevaluasi kinerja model, dan memvisualisasikan pohon keputusan. Melalui kasus ini, Anda dapat melihat cara kerja pohon keputusan dan cara menggunakannya dalam aplikasi praktis.

Saya harap Anda semua menyukainya. Jika Anda menyukainya, silakan beri suka dan simpan.