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

Contoh SVM dalam Python

PHPz
Lepaskan: 2023-06-11 20:42:06
asal
1165 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

Seterusnya, kami memuatkan set data Iris:

iris = datasets.load_iris()
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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

accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

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