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

Prinsip dan kaedah pelaksanaan melaksanakan algoritma pepohon keputusan dalam Python

PHPz
PHPzke hadapan
2024-01-22 19:24:11466semak imbas

决策树算法原理 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]

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)

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!

Kenyataan:
Artikel ini dikembalikan pada:163.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam