Random Forest ialah algoritma pembelajaran ensemble yang meningkatkan ketepatan dan keteguhan dengan menggabungkan hasil ramalan berbilang pepohon keputusan. Hutan rawak digunakan secara meluas dalam pelbagai bidang, seperti kewangan, penjagaan perubatan, e-dagang, dll.
Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan pengelas hutan rawak dan mengujinya menggunakan set data bunga iris.
1. Iris Dataset
Iris Dataset ialah set data klasik dalam pembelajaran mesin Ia mengandungi 150 rekod, setiap rekod mempunyai 4 ciri dan 1 label kategori. Empat ciri tersebut ialah panjang sepal, lebar sepal, panjang kelopak dan lebar kelopak, dan label kategori mewakili salah satu daripada tiga jenis iris (gunung Iris, pembolehubah Iris, Iris Virginia).
Dalam Python, kita boleh menggunakan scikit-learn, perpustakaan pembelajaran mesin yang berkuasa, untuk memuatkan set data iris. Operasi khusus adalah seperti berikut:
from sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target
2. Bina pengelas hutan rawak
Sangat mudah untuk membina pengelas hutan rawak menggunakan scikit-learn. Mula-mula, kita perlu mengimport kelas RandomForestClassifier daripada sklearn.ensemble dan membuat instantiate objek:
from sklearn.ensemble import RandomForestClassifier rfc = RandomForestClassifier(n_estimators=10)
Antaranya, parameter n_estimators menentukan bilangan pokok keputusan yang disertakan dalam hutan rawak. Di sini, kami menetapkan bilangan pokok keputusan dalam hutan rawak kepada 10.
Seterusnya, kita perlu membahagikan set data iris kepada data latihan dan data ujian. Gunakan fungsi train_test_split untuk membahagikan set data secara rawak kepada set latihan dan set ujian:
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Antaranya, parameter test_size menentukan perkadaran set ujian, dan parameter random_state menentukan benih pseudo -penjana nombor rawak untuk memastikan setiap kali Menjalankan program memberikan hasil yang sama.
Kami kemudiannya boleh menggunakan data latihan untuk melatih pengelas hutan rawak:
rfc.fit(X_train, y_train)
3. Uji pengelas hutan rawak
Setelah pengelas telah dilatih, kami boleh menggunakan Uji data untuk menguji prestasinya. Gunakan fungsi ramalan untuk membuat ramalan pada set ujian dan fungsi accuracy_score untuk mengira ketepatan model:
from sklearn.metrics import accuracy_score y_pred = rfc.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy)
Akhir sekali, kita boleh menggunakan perpustakaan matplotlib untuk menggambarkan sempadan keputusan pengelas untuk lebih memahami tingkah laku pengelas :
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5 y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5 z_min, z_max = X[:, 2].min() - .5, X[:, 2].max() + .5 xx, yy, zz = np.meshgrid(np.arange(x_min, x_max, 0.2), np.arange(y_min, y_max, 0.2), np.arange(z_min, z_max, 0.2)) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') Z = rfc.predict(np.c_[xx.ravel(), yy.ravel(), zz.ravel()]) Z = Z.reshape(xx.shape) ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y) ax.set_xlabel('Sepal length') ax.set_ylabel('Sepal width') ax.set_zlabel('Petal length') ax.set_title('Decision Boundary') ax.view_init(elev=30, azim=120) ax.plot_surface(xx, yy, zz, alpha=0.3, facecolors='blue') plt.show()
Kod di atas akan memperoleh imej tiga dimensi, di mana warna titik data mewakili kepelbagaian bunga iris, dan sempadan keputusan diwakili oleh permukaan biru lut sinar.
4. Ringkasan
Artikel ini memperkenalkan cara menggunakan Python untuk melaksanakan pengelas hutan rawak dan menggunakan set data bunga iris untuk ujian. Oleh kerana keteguhan dan ketepatan algoritma hutan rawak, ia mempunyai prospek aplikasi yang luas dalam aplikasi praktikal. Jika anda berminat dengan algoritma ini, disyorkan untuk berlatih lebih banyak dan membaca literatur yang berkaitan.
Atas ialah kandungan terperinci Contoh algoritma hutan rawak dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!