Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menulis algoritma mesin vektor sokongan dalam Python?

Bagaimana untuk menulis algoritma mesin vektor sokongan dalam Python?

WBOY
WBOYasal
2023-09-19 09:57:121181semak imbas

Bagaimana untuk menulis algoritma mesin vektor sokongan dalam Python?

Bagaimana untuk menulis algoritma mesin vektor sokongan dalam Python?

Mesin Vektor Sokongan (SVM) ialah algoritma pembelajaran mesin yang digunakan untuk masalah klasifikasi dan regresi binari. Matlamat utamanya ialah untuk mencari hyperplane optimum yang memisahkan titik data bagi kategori berbeza sebanyak mungkin dan memaksimumkan jarak dari titik data pada sempadan ke hyperplane. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Python untuk menulis algoritma mesin vektor sokongan mudah dan memberikan contoh kod tertentu.

Pertama, kita perlu memasang perpustakaan scikit-learn. Ia boleh dipasang dalam persekitaran Python menggunakan arahan berikut:

pip install -U scikit-learn

Seterusnya, kami mengimport perpustakaan yang diperlukan:

from sklearn import svm

Dalam contoh ini, kami akan menggunakan kelas SVC daripada perpustakaan scikit-learn untuk melaksanakan algoritma mesin vektor sokongan . Kami akan menggunakan contoh mudah untuk menggambarkan penggunaan algoritma. Katakan kita mempunyai set data latihan X yang terdiri daripada dua ciri X dan label kategori y yang sepadan. Kami ingin meramalkan kategori titik data baharu dengan melatih model SVM.

Berikut ialah kod contoh mudah:

# 创建训练数据集
X = [[0, 0], [1, 1]]
y = [0, 1]

# 创建SVM模型
clf = svm.SVC()

# 训练模型
clf.fit(X, y)

# 预测新数据点的类别
new_data = [[2, 2]]
print(clf.predict(new_data))

Dalam contoh ini, kami mula-mula mencipta set data latihan X yang mengandungi dua ciri dan label kategori y yang sepadan. Seterusnya, kami mencipta model mesin vektor sokongan clf menggunakan kelas SVC. Kemudian, kami menggunakan fungsi muat untuk melatih model. Akhir sekali, kami menggunakan fungsi ramalan untuk meramal titik data baharu dan mengeluarkan kategorinya.

Perhatikan bahawa contoh di atas hanyalah contoh mudah, dan aplikasi sebenar memerlukan set data yang lebih kompleks dan lebih banyak langkah prapemprosesan.

Selain fungsi inti linear lalai, mesin vektor sokongan juga menyokong penggunaan fungsi kernel lain untuk memproses set data bukan linear. Kelas SVC dalam perpustakaan scikit-learn boleh menentukan fungsi kernel untuk digunakan melalui parameter 'kernel'. Sebagai contoh, fungsi inti polinomial boleh digunakan untuk memproses set data dengan ciri polinomial:

# 创建SVM模型,并指定使用多项式核函数
clf = svm.SVC(kernel='poly', degree=3)

Dalam kod di atas, kami telah mencipta model SVM clf dan menentukan fungsi kernel polinomial menggunakan parameter 'poli' dan melepasi ' parameter darjah' Darjah polinomial ditentukan.

Selain itu, mesin vektor sokongan juga boleh mengendalikan set data dengan kelas yang tidak seimbang. Kelas SVC dalam perpustakaan scikit-learn boleh menentukan berat kelas melalui parameter 'class_weight'. Sebagai contoh, parameter 'class_weight' boleh digunakan untuk mengimbangi berat kelas yang lebih kecil:

# 创建SVM模型,并指定类别权重
clf = svm.SVC(class_weight={0: 1, 1: 10})

Dalam kod di atas, kami telah mencipta model SVM clf dan menentukan berat kelas menggunakan parameter 'class_weight', di mana kelas 0 mempunyai berat 1 , berat kategori 1 ialah 10.

Untuk meringkaskan, contoh di atas memberikan kod Python mudah untuk melaksanakan algoritma mesin vektor sokongan. Melalui kelas SVC dalam perpustakaan scikit-learn, kami boleh mencipta model mesin vektor sokongan, melatih model dan menggunakan model untuk membuat ramalan pada titik data baharu. Di samping itu, kami juga boleh mengendalikan pelbagai jenis set data dengan menentukan fungsi kernel dan berat kelas yang berbeza. Saya harap artikel ini akan membantu anda memahami proses pelaksanaan algoritma mesin vektor sokongan!

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