Rumah  >  Artikel  >  Peranti teknologi  >  Gunakan mesin vektor sokongan untuk menyelesaikan masalah pengelasan XOR

Gunakan mesin vektor sokongan untuk menyelesaikan masalah pengelasan XOR

WBOY
WBOYke hadapan
2024-01-23 11:00:05935semak imbas

Gunakan mesin vektor sokongan untuk menyelesaikan masalah pengelasan XOR

Mesin vektor sokongan ialah algoritma pengelasan yang biasa digunakan sesuai untuk masalah pengelasan linear dan bukan linear. Artikel ini akan memperkenalkan cara menggunakan mesin vektor sokongan untuk menyelesaikan masalah XOR.

Masalah XOR bermaksud apabila input mengandungi dua pembolehubah binari, output adalah benar (1) jika kedua-dua pembolehubah tidak sama, jika tidak, output adalah palsu (0). Sebagai contoh, apabila input ialah (0, 1) atau (1, 0), output ialah 1, dan apabila input ialah (0, 0) atau (1, 1), output ialah 0. Ini adalah masalah tak linear kerana kedua-dua output tidak boleh dipisahkan menggunakan satu garis lurus.

Untuk menyelesaikan masalah XOR, mesin vektor sokongan boleh mencapai kebolehpisahan linear dengan memetakan input ke dalam ruang dimensi tinggi. Sebagai contoh, kita boleh memetakan input (x1, x2) kepada (x1, x2, x1 x2) dalam ruang tiga dimensi. Dalam ruang baru ini kita boleh menggunakan satah untuk memisahkan dua output. Kami kemudiannya boleh memetakan persamaan satah ini kembali ke ruang 2D asal untuk mendapatkan sempadan keputusan untuk pengelasan. Ini boleh menyelesaikan masalah XOR dengan berkesan.

Secara khusus, pemetaan ini boleh dicapai menggunakan helah kernel mesin vektor sokongan. Helah kernel ialah kaedah memetakan input ke dalam ruang dimensi tinggi tanpa perlu mengira pemetaan ini secara eksplisit. Fungsi kernel yang biasa digunakan termasuk fungsi kernel linear, fungsi kernel polinomial dan fungsi kernel fungsi asas jejari. Dalam contoh ini, kita akan menggunakan fungsi kernel RBF.

Berikut ialah kod yang menggunakan Python untuk melaksanakan mesin vektor sokongan untuk menyelesaikan masalah XOR:

from sklearn import svm

# 输入数据
X = [[0, 0], [0, 1], [1, 0], [1, 1]]
# 输出数据
y = [0, 1, 1, 0]

# 定义SVM模型,使用RBF核函数
clf = svm.SVC(kernel='rbf')

#使用输入和输出数据训练模型
clf.fit(X, y)

# 预测新的输入数据
print(clf.predict([[0, 1], [1, 1], [0, 0], [1, 0]]))

Dalam kod, kami mentakrifkan set data input X dan set data output y, dan kemudian menggunakan vektor sokongan model mesin untuk melatih data ini. Kami menggunakan fungsi kernel RBF untuk memulakan model mesin vektor sokongan, dan kemudian memanggil kaedah fit() untuk melatih model. Akhir sekali, kami menggunakan kaedah predict() untuk meramal data input baharu dan mencetak keputusan ramalan.

Dalam contoh ini, kami menggunakan empat titik data input ([0,0], [0,1], [1,0], [1,1]) dan data output yang sepadan (0, 1, 1 , 0). Kami memetakan titik ini ke dalam ruang tiga dimensi dan memisahkannya menggunakan fungsi kernel RBF. Akhir sekali, kami mempunyai pengelas yang boleh meramalkan output untuk data input baharu.

Atas ialah kandungan terperinci Gunakan mesin vektor sokongan untuk menyelesaikan masalah pengelasan XOR. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:163.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam