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!