Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menggunakan SVM untuk klasifikasi dalam Python?

Bagaimana untuk menggunakan SVM untuk klasifikasi dalam Python?

WBOY
WBOYasal
2023-06-03 15:51:182085semak imbas

SVM ialah algoritma klasifikasi yang biasa digunakan, yang digunakan secara meluas dalam bidang pembelajaran mesin dan perlombongan data. Dalam Python, pelaksanaan SVM sangat mudah dan boleh diselesaikan dengan menggunakan perpustakaan yang berkaitan.

Artikel ini akan memperkenalkan cara menggunakan SVM untuk pengelasan dalam Python, termasuk prapemprosesan data, latihan model dan penalaan parameter.

1. Prapemprosesan data

Sebelum menggunakan SVM untuk pengelasan, kami perlu praproses data untuk memastikan data memenuhi keperluan algoritma SVM. Biasanya, prapemprosesan data merangkumi aspek berikut:

  1. Pembersihan data: mengecualikan beberapa data yang tidak berguna atau tidak normal untuk mengelakkan gangguan terhadap klasifikasi SVM.
  2. Penormalan data: Skalakan data mengikut nisbah tertentu untuk memastikan julat berangka data adalah sama.
  3. Pemilihan ciri: Apabila terdapat terlalu banyak data, pilih ciri yang paling bermaklumat untuk meningkatkan kesan pengelasan.

2. Latihan model

Selepas prapemprosesan data, kami boleh memulakan latihan model. Dalam Python, kita boleh menggunakan perpustakaan berkaitan SVM untuk latihan model.

  1. Import perpustakaan

Sebelum melatih model, kita perlu mengimport perpustakaan yang berkaitan:

import numpy sebagai np
dari sklearn import SVC
daripada sklearn.model_selection import train_test_split
daripada sklearn.metrics import accuracy_score

  1. Pemuatan data

Seterusnya, kami perlu memuatkan data Pembahagian set latihan dan set ujian:

data = np.loadtxt('data.txt', delimiter=',')
X = data[:, :-1]
y = data[:, -1]
X_train, fungsi loadtxt untuk dimuatkan. Fungsi train_test_split digunakan untuk membahagikan data secara rawak kepada set latihan dan set ujian, dan parameter test_size menentukan bahagian set ujian.

Latihan model
  1. Seterusnya, kita boleh memulakan latihan model:

clf = SVC(C=1.0, kernel='rbf' , gamma= 'auto')

clf.fit(X_train, y_train)


Antaranya, parameter C ialah pekali regularisasi, parameter kernel menentukan fungsi kernel yang hendak digunakan dan parameter gamma digunakan untuk mengawal fungsi kernel. Dalam contoh ini, kami menggunakan fungsi kernel RBF.

Penilaian model
  1. Selepas latihan selesai, kita perlu melakukan penilaian model:

y_pred = clf.predict(X_test)

acc = accuracy_score (y_test, y_pred)

print('Accuracy:', acc)

Antaranya, accuracy_score function digunakan untuk mengira ketepatan model.

3. Penalaan parameter

Selepas latihan model, kami boleh melakukan penalaan parameter untuk meningkatkan lagi kesan klasifikasi model. Dalam SVM, kaedah penalaan parameter yang biasa digunakan termasuk carian grid dan pengesahan silang.

Carian grid
  1. Carian grid ialah kaedah carian brute force yang mencari gabungan parameter optimum dengan merentasi semua kombinasi parameter yang mungkin. Dalam Python, kita boleh menggunakan fungsi GridSearchCV untuk melaksanakan carian grid.

dari sklearn.model_selection import GridSearchCV

Tentukan julat parameter

param_grid = {'C': [0.1, 1.0, 10.0],

          'kernel': ['linear', 'rbf'],
          'gamma': ['auto', 0.1, 0.01]}

rreee

gs = GridSearchCV(SVC(), param_grid, cv=5)

gs.fit(X_train, y_train)


Output parameter optimum

print(' Best:', gs.best_params_)

Antaranya, param_grid menentukan julat parameter dan parameter cv menentukan bilangan pengesahan silang. Selepas pelaksanaan selesai, kita boleh mengeluarkan kombinasi parameter optimum.

Pengesahan silang
  1. Pengesahan silang ialah kaedah untuk mengesahkan prestasi model melalui pensampelan berulang. Dalam Python, kita boleh menggunakan fungsi cross_val_score untuk melaksanakan pengesahan silang.

daripada sklearn.model_selection import cross_val_score

Lakukan pengesahan silang

skor = cross_val_score(clf, X_train, y_train, cv=5)

skor silang Keputusan

cetak('skor CV:', markah)

Antaranya, parameter cv menentukan bilangan pengesahan silang. Selepas pelaksanaan selesai, kita boleh mengeluarkan keputusan pengesahan silang.

4. Ringkasan

Artikel ini memperkenalkan cara menggunakan SVM untuk pengelasan dalam Python, termasuk prapemprosesan data, latihan model dan penalaan parameter. Masalah klasifikasi boleh diselesaikan dengan berkesan menggunakan SVM, dan perpustakaan berkaitan dalam Python juga menyediakan alat yang mudah untuk melaksanakan SVM. Saya harap artikel ini boleh membantu pembaca apabila menggunakan SVM untuk pengelasan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan SVM untuk klasifikasi 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