Rumah > pembangunan bahagian belakang > Tutorial Python > Prinsip dan kaedah pelaksanaan melaksanakan algoritma pepohon keputusan dalam Python

Prinsip dan kaedah pelaksanaan melaksanakan algoritma pepohon keputusan dalam Python

PHPz
Lepaskan: 2024-01-22 19:24:11
ke hadapan
521 orang telah melayarinya

决策树算法原理 Python实现决策树算法

Algoritma pohon keputusan tergolong dalam kategori algoritma pembelajaran diselia, sesuai untuk pembolehubah output berterusan dan kategori, dan biasanya digunakan untuk menyelesaikan masalah klasifikasi dan regresi.

Pokok keputusan ialah struktur pepohon yang serupa dengan carta alir, di mana setiap nod dalaman mewakili ujian atribut, setiap cawangan mewakili hasil ujian dan setiap nod sepadan dengan label kelas.

Idea algoritma pokok keputusan

Mulakan dengan menganggap keseluruhan set latihan sebagai punca.

Untuk mendapatkan maklumat, diandaikan bahawa atribut adalah kategori, dan untuk indeks Gini, diandaikan bahawa atribut adalah berterusan.

Rekod diedarkan secara rekursif berdasarkan nilai atribut.

Gunakan kaedah statistik untuk mengisih atribut kepada nod akar.

Cari atribut terbaik dan letakkan pada nod akar pokok.

Sekarang, bahagikan set latihan set data kepada subset. Apabila membuat subset, pastikan setiap subset set data latihan harus mempunyai nilai atribut yang sama.

Cari nod daun di semua cabang dengan mengulangi 1 dan 2 pada setiap subset.

Melaksanakan algoritma pepohon keputusan dalam Python

memerlukan dua fasa pembinaan dan operasi:

fasa pembinaan dan set data prapemprosesan. Pisahkan set data daripada latihan dan ujian menggunakan pakej Python sklearn. Latih pengelas.

Dalam peringkat operasi, buat ramalan. Ketepatan pengiraan.

Import data, untuk mengimport dan memanipulasi data, kami menggunakan pakej panda yang disediakan dalam python.

Di sini, kami menggunakan URL untuk mendapatkan set data terus dari tapak UCI tanpa memuat turun set data. Apabila anda cuba menjalankan kod ini pada sistem anda, pastikan sistem harus mempunyai sambungan Internet yang aktif.

Memandangkan set data dipisahkan oleh ",", kita perlu menghantar nilai parameter sep sebagai.

Satu lagi perkara yang perlu diambil perhatian ialah set data tidak mengandungi pengepala, jadi kami menghantar nilai parameter Pengepala sebagai tiada. Jika kita tidak lulus parameter pengepala, maka ia akan mempertimbangkan baris pertama set data sebagai pengepala.

Pemotongan data, sebelum melatih model, kita perlu membahagikan set data kepada set data latihan dan ujian.

Untuk membahagikan set data untuk latihan dan ujian, kami menggunakan modul sklearn train_test_split

Pertama, kami perlu memisahkan pembolehubah sasaran daripada atribut dalam set data.

X=balance_data.values[:,1:5]
Y=balance_data.values[:,0]
Salin selepas log masuk

Di atas ialah baris kod yang memisahkan set data. Pembolehubah X mengandungi atribut, manakala pembolehubah Y mengandungi pembolehubah sasaran set data.

Langkah seterusnya ialah membahagikan set data untuk tujuan latihan dan ujian.

X_train,X_test,y_train,y_test=train_test_split(
X,Y,test_size=0.3,random_state=100)
Salin selepas log masuk

Barisan sebelumnya membahagikan set data untuk latihan dan ujian. Memandangkan kami membahagikan set data pada nisbah 70:30 antara latihan dan ujian, kami menghantar nilai parameter test_size sebagai 0.3.

pembolehubah keadaan_rawak ialah keadaan penjana nombor rawak pseudo yang digunakan untuk pensampelan rawak.

Atas ialah kandungan terperinci Prinsip dan kaedah pelaksanaan melaksanakan algoritma pepohon keputusan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:163.com
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