Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk menggunakan pepohon keputusan untuk klasifikasi dalam Python?

Bagaimana untuk menggunakan pepohon keputusan untuk klasifikasi dalam Python?

PHPz
Lepaskan: 2023-06-05 18:21:03
asal
2030 orang telah melayarinya

Dalam bidang pembelajaran mesin, pengelasan adalah tugas penting. Pepohon keputusan ialah algoritma klasifikasi yang biasa digunakan yang boleh membahagikan set data dengan berulang kali memilih ciri terbaik, supaya ciri dalam setiap subset adalah agak mudah dan kategorinya agak luas. Artikel ini akan menunjukkan kepada anda cara menggunakan pepohon keputusan untuk pengelasan dalam Python.

1. Apakah pokok keputusan?

Pokok keputusan ialah model pengelasan berstruktur pokok. Model pokok keputusan mempunyai struktur pokok, dan dalam masalah klasifikasi, ia mewakili proses pengelasan. Ia bermula dari nod akar, menguji atribut, dan membahagikan set latihan kepada beberapa subset berdasarkan atribut. Untuk setiap subset, teruskan membahagikan dengan cara yang sama sehingga semua kategori dipisahkan.

2. Proses pengelasan pepohon keputusan

Proses pengelasan pepohon keputusan adalah seperti berikut:

  1. Pilih ciri pembahagian yang terbaik.
  2. Pisah set data kepada dua subset untuk memadankan hasil pemilihan.
  3. Proses subset secara rekursif dan ulangi langkah 1 dan 2.
  4. Ulang langkah 1 hingga 3 sehingga semua data telah diklasifikasikan.

Memilih ciri pembahagian yang terbaik memerlukan pengukuran kesan pembahagian. Biasanya, kami menggunakan entropi maklumat untuk mengukur keberkesanan pembahagian. Entropi maklumat ialah konsep dalam statistik yang mewakili tahap kekeliruan maklumat. Jika set data hanya mengandungi data kategori yang sama, set data adalah yang paling tersusun dan entropi maklumatnya adalah yang terkecil. Sebaliknya, lebih banyak data kategori berbeza yang terkandung dalam set data, lebih tinggi tahap kekeliruan set data dan lebih besar entropi maklumat.

Apabila memilih ciri pembahagian terbaik, kami mengira keuntungan maklumat bagi setiap ciri. Keuntungan maklumat merujuk kepada pengurangan entropi maklumat daripada nod induk kepada nod anak di bawah keadaan cawangan tertentu. Lebih besar perolehan maklumat sesuatu ciri, lebih berguna ciri ini dalam membezakan kategori data yang berbeza dalam set data.

3. Bagaimana cara menggunakan pepohon keputusan untuk pengelasan dalam Python?

Terdapat banyak perpustakaan pembelajaran mesin dalam Python yang boleh digunakan untuk melaksanakan pengelas pepohon keputusan. Artikel ini memperkenalkan cara menggunakan perpustakaan Scikit-learn untuk melaksanakan pengelas pepohon keputusan.

Pustaka Scikit-learn ialah salah satu perpustakaan pembelajaran mesin yang paling biasa digunakan dalam Python Ia menyediakan pelbagai klasifikasi, pengelompokan, regresi, pengurangan dimensi dan algoritma lain. Pustaka Scikit-learn menyediakan kelas yang dipanggil DecisionTreeClassifier yang melaksanakan pengelas pokok keputusan.

Kami boleh melaksanakan pengelas pokok keputusan berdasarkan perpustakaan Scikit-learn menggunakan kod berikut:

from sklearn.tree import DecisionTreeClassifier

# 将特征和分类目标分别存储到X和y中
X = [[0, 0], [1, 1]]
y = [0, 1]

# 创建决策树并打印结果
clf = DecisionTreeClassifier()
clf = clf.fit(X, y)
print(clf.predict([[2., 2.]]))
Salin selepas log masuk

Di sini, kami melepasi ciri dan sasaran pengelasan sebagai input, mencipta objek DecisionTreeClassifier dan menggunakannya kereta api. Kami kemudiannya boleh menggunakan model ini untuk memasukkan data baharu ke dalam pengelas untuk meramal label kelasnya.

Selain menggunakan sintaks di atas, anda juga boleh menggunakan kod berikut untuk melengkapkan klasifikasi pepohon keputusan:

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
from IPython.display import Image 
from  pydotplus import graph_from_dot_data

iris = load_iris()
X = iris.data[:, 2:] # 我们只选取花瓣的长度和宽度作为特征
y = iris.target

# 创建决策树并训练
tree_clf = DecisionTreeClassifier(max_depth=2)
tree_clf.fit(X, y)

# 可视化决策树
dot_data = export_graphviz(
    tree_clf,
    out_file=None,
    feature_names=iris.feature_names[2:],
    class_names=iris.target_names,
    rounded=True,
    filled=True
)

graph = graph_from_dot_data(dot_data)
Image(graph.create_png())
Salin selepas log masuk

Dalam kod di atas, kami menggunakan set data bunga iris sebagai data contoh dan pilih sahaja Dua ciri digunakan untuk pengelasan. Kami kemudian mencipta pokok keputusan dan melatihnya.

Akhir sekali, kami menggambarkan pepohon keputusan menggunakan fungsi export_graphviz, yang mengeluarkan pepohon keputusan sebagai fail .graf. Seterusnya, kami melukis pepohon keputusan dalam format fail .png menggunakan fungsi graph_from_dot_data. Dengan melakukan ini, kita boleh lebih memahami pelaksanaan pengelas pokok keputusan dan pembinaan pepohon keputusan.

4. Kesimpulan

Dalam artikel ini, kami memperkenalkan algoritma pepohon keputusan dan menunjukkan cara menggunakan perpustakaan Scikit-learn untuk melaksanakan pengelas pepohon keputusan. Pepohon keputusan ialah algoritma pembelajaran mesin yang biasa digunakan yang memproses data input dan pemilihan ciri secara automatik untuk memberikan keputusan secara automatik. Algoritma ini sering digunakan untuk menyelesaikan tugasan seperti pengelasan, ramalan dan pengesanan anomali. Melalui contoh dan kod dalam artikel ini, anda boleh lebih memahami konsep asas dan kaedah pelaksanaan algoritma pepohon keputusan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan pepohon keputusan untuk klasifikasi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan