Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Contoh SVM dalam Python

Contoh SVM dalam Python

PHPz
PHPzasal
2023-06-11 20:42:061113semak imbas

Mesin Vektor Sokongan (SVM) dalam Python ialah algoritma pembelajaran diselia yang berkuasa yang boleh digunakan untuk menyelesaikan masalah klasifikasi dan regresi. SVM berprestasi baik apabila menangani data berdimensi tinggi dan masalah bukan linear, dan digunakan secara meluas dalam perlombongan data, klasifikasi imej, klasifikasi teks, bioinformatik dan bidang lain.

Dalam artikel ini, kami akan memperkenalkan contoh penggunaan SVM untuk pengelasan dalam Python. Kami akan menggunakan model SVM daripada perpustakaan scikit-learn, yang menyediakan banyak algoritma pembelajaran mesin yang berkuasa.

Pertama, kita perlu memasang perpustakaan scikit-learn, yang boleh dipasang menggunakan arahan berikut dalam terminal:

pip install scikit-learn

Seterusnya, kami akan menggunakan set data Iris klasik untuk menunjukkan kesan klasifikasi SVM. Set data Iris mengandungi 150 sampel, dibahagikan kepada tiga kategori, setiap kategori mengandungi 50 sampel. Setiap sampel mempunyai 4 ciri: panjang sepal, lebar sepal, panjang kelopak dan lebar kelopak. Kami akan menggunakan SVM untuk mengklasifikasikan sampel ini.

Pertama, kita perlu mengimport perpustakaan yang diperlukan:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

Seterusnya, kami memuatkan set data Iris:

iris = datasets.load_iris()

Kemudian, kami membahagikan data ke dalam set latihan dan set ujian:

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

Di sini, kami menggunakan fungsi train_test_split untuk membahagikan set data secara rawak kepada set latihan dan set ujian Parameter test_size menyatakan bahawa perkadaran set ujian kepada jumlah set data adalah 30%.

Seterusnya, kami akan menggunakan model SVM agar sesuai dengan set latihan:

clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

Di sini, kami menggunakan fungsi kernel linear dan menentukan parameter regularisasi C=1. Hiperparameter C SVM mengawal pertukaran antara ketepatan dan kerumitan model. Lebih kecil nilai C, lebih mudah model dan terdedah kepada kurang muat; Biasanya, kita perlu memilih nilai C yang sesuai melalui pengesahan silang.

Seterusnya, kami menggunakan model terlatih untuk meramal set ujian:

y_pred = clf.predict(X_test)

Akhir sekali, kami boleh menggunakan fungsi accuracy_score untuk mengira ketepatan pengelasan:

accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

Lengkapkan Kod adalah seperti berikut:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

# Load iris dataset
iris = datasets.load_iris()

# Split data into train and test
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

# Fit SVM model on training data
clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

# Predict on test data
y_pred = clf.predict(X_test)

# Compute accuracy score
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

Dalam contoh ini, kami menggunakan model SVM untuk pengelasan, menyasarkan set data yang sangat biasa, set data Iris. Kelebihan SVM ialah keupayaan pengelasannya yang berkuasa dan kesesuaiannya untuk data berdimensi tinggi dan masalah tak linear. Melaksanakan SVM memerlukan penalaan siri hiperparameter untuk mencapai kesan pengelasan terbaik.

Atas ialah kandungan terperinci Contoh SVM dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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