Bagaimana untuk menulis algoritma SVM dalam Python?

WBOY
Lepaskan: 2023-09-21 12:06:11
asal
749 orang telah melayarinya

Bagaimana untuk menulis algoritma SVM dalam Python?

Bagaimana menulis algoritma SVM dalam Python?

SVM (Mesin Vektor Sokongan) ialah algoritma klasifikasi dan regresi yang biasa digunakan berdasarkan teori pembelajaran statistik dan prinsip pengurangan risiko struktur. Ia mempunyai ketepatan tinggi dan keupayaan generalisasi, dan sesuai untuk pelbagai jenis data. Dalam artikel ini, kami akan memperkenalkan secara terperinci cara menulis algoritma SVM menggunakan Python dan memberikan contoh kod khusus.

  1. Pasang Python dan perpustakaan berkaitan
    Sebelum anda mula menulis algoritma SVM, anda perlu terlebih dahulu memastikan bahawa Python dan perpustakaan pembelajaran mesin yang berkaitan telah dipasang. Adalah disyorkan untuk menggunakan Anaconda sebagai persekitaran pembangunan bersepadu untuk Python. Ia bukan sahaja disertakan dengan penterjemah Python, tetapi juga termasuk banyak pustaka pembelajaran mesin dan pengkomputeran saintifik yang biasa digunakan. Pasang perpustakaan scikit-learn menggunakan arahan berikut:
pip install scikit-learn
Salin selepas log masuk
  1. Import perpustakaan yang diperlukan
    Import perpustakaan yang diperlukan, termasuk scikit-learn, numpy dan matplotlib.
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets
Salin selepas log masuk
  1. Memuatkan set data
    Untuk menunjukkan penulisan algoritma SVM, kami akan menggunakan set data Iris yang terkenal. Set data Iris mengandungi 150 sampel bunga iris, setiap sampel mempunyai 4 ciri. Kami membahagikan set data kepada dua kategori: Setosa dan Versicolor, dua jenis bunga iris.
iris = datasets.load_iris()
X = iris.data[:, :2]  # 我们只使用前两个特征
y = iris.target
Salin selepas log masuk
  1. Latih model
    Gunakan SVM untuk melatih model, di sini kita menggunakan fungsi kernel linear.
C = 1.0  # SVM正则化参数
svc = svm.SVC(kernel='linear', C=C).fit(X, y)
Salin selepas log masuk
  1. Lukis sempadan keputusan
    Untuk lebih memahami kesan klasifikasi SVM, kita boleh melukis sempadan keputusan. Mula-mula, kami mencipta grid untuk mencuba keseluruhan ruang ciri.
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
h = (x_max / x_min)/100
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Salin selepas log masuk

Kemudian, kami menggunakan grid ini sebagai ciri input untuk meramal dan mendapatkan sempadan keputusan.

Z = svc.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
Salin selepas log masuk

Akhir sekali, kami menggunakan perpustakaan matplotlib untuk melukis titik sampel dan sempadan keputusan.

plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.show()
Salin selepas log masuk
  1. Contoh kod penuh
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets

# 加载数据集
iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

# 训练模型
C = 1.0  # SVM正则化参数
svc = svm.SVC(kernel='linear', C=C).fit(X, y)

# 画出决策边界
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
h = (x_max / x_min)/100
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = svc.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.show()
Salin selepas log masuk

Ringkasan:
Melalui langkah di atas, kami berjaya menulis algoritma SVM menggunakan Python dan menunjukkannya melalui set data Iris. Sudah tentu, ini hanyalah aplikasi mudah algoritma SVM Terdapat banyak cara untuk melanjutkan dan menambah baik SVM, seperti menggunakan fungsi kernel yang berbeza, melaraskan parameter regularisasi C, dsb. Saya harap artikel ini akan membantu anda mempelajari dan memahami algoritma SVM.

Atas ialah kandungan terperinci Bagaimana untuk menulis algoritma 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