Pelajari AI dengan Python · Pelajaran

SVM untuk Pengelasan dengan sklearn

SVC, LinearSVC, pemilihan kernel, class_weight='balanced', probability=True.

Pelajaran 3 daripada 413 langkah

SVM untuk Pengelasan dengan sklearn ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

SVM dalam Pustaka Pembelajaran Mesin

Pustaka pembelajaran mesin menawarkan beberapa pengelas SVM. Pengelas utamanya ialah SVC, yang menyokong sempadan linear dan berteras melalui parameter kernel.

from sklearn.svm import SVC

model = SVC(kernel="rbf", C=1.0, gamma="scale")
model.fit(Xtr, ytr)
print(model.score(Xte, yte))

Parameter Teras SVC

Tiga parameter menentukan tingkah laku SVC:

  • kernel jenis sempadan (linear, rbf, poly)
  • C penalti kesilapan / pengawalseliaan
  • gamma lebar teras untuk rbf/poly
from sklearn.svm import SVC

model = SVC(kernel="rbf", C=10, gamma=0.1)

Sentiasa Skalakan Dahulu

SVM sensitif terhadap skala. Balut penskala dan SVC dalam saluran pemprosesan supaya penskalaan hanya dilakukan pada data latihan, termasuk semasa pengesahan silang.

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
pipe.fit(Xtr, ytr)

LinearSVC untuk Set Data Besar

SVC(kernel="linear") tidak berskala dengan baik apabila terdapat banyak sampel. LinearSVC menggunakan penyelesai yang lebih pantas dan dioptimumkan untuk masalah linear, serta mengendalikan data besar berdimensi tinggi dengan jauh lebih baik.

from sklearn.svm import LinearSVC

model = LinearSVC(C=1.0, max_iter=5000)
model.fit(Xtr, ytr)

SVC berbanding LinearSVC

Gunakan LinearSVC untuk data besar atau jarang (seperti teks). Gunakan SVC apabila anda memerlukan teras untuk sempadan tak linear. Ambil perhatian bahawa LinearSVC menggunakan fungsi kerugian yang sedikit berbeza dan tidak mempunyai predict_proba.

Ketidakseimbangan Kelas

Apabila satu kelas jarang muncul, SVM cenderung memihak kepada kelas majoriti. Menetapkan class_weight="balanced" akan memberikan pemberat kepada kelas secara songsang mengikut kekerapannya secara automatik.

from sklearn.svm import SVC

model = SVC(kernel="rbf", class_weight="balanced")
model.fit(Xtr, ytr)

Pemberat Kelas Tersuai

Anda juga boleh memberikan kamus eksplisit kepada class_weight untuk memberikan penekanan yang lebih besar kepada kelas tertentu berbanding pengimbangan automatik.

from sklearn.svm import SVC

model = SVC(class_weight={0: 1, 1: 5})  # class 1 errors cost 5x

Anggaran Kebarangkalian

Secara lalai, SVC mengembalikan label muktamad. Tetapkan probability=True untuk mendayakan predict_proba (melalui penentukuran dalaman), yang diperlukan untuk ROC AUC dan penalaan ambang. Tindakan ini memperlahankan latihan.

from sklearn.svm import SVC

model = SVC(probability=True)
model.fit(Xtr, ytr)
proba = model.predict_proba(Xte)[:, 1]

SVM Berbilang Kelas

SVC mengendalikan lebih daripada dua kelas secara automatik menggunakan skema satu lawan satu. Anda tidak perlu mengubah kod; hanya jalankan fit dengan label berbilang kelas dan semuanya akan berfungsi.

from sklearn.svm import SVC

model = SVC(decision_function_shape="ovr")
model.fit(X_multiclass, y_multiclass)

Menala C dan gamma dengan GridSearchCV

Resipi standard ialah melakukan carian grid terhadap C dan gamma pada skala log, semuanya dalam alur pemprosesan penskalaan.

from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
param = {
    "svc__C": [0.1, 1, 10, 100],
    "svc__gamma": [0.001, 0.01, 0.1, 1],
}
gs = GridSearchCV(pipe, param, cv=5, scoring="f1")
gs.fit(Xtr, ytr)
print(gs.best_params_)

Panduan Praktikal

SVM amat berkesan pada set data kecil hingga sederhana yang mempunyai sempadan pemisah yang jelas. SVM sukar mengendalikan data yang sangat besar (gunakan LinearSVC atau beralih kepada penggalakan). Sentiasa skalakan data, tala C dan gamma, serta gunakan class_weight untuk ketakseimbangan.

Semakan Pantas

Uji pengetahuan anda tentang SVM dalam sklearn.

Ringkasan

Ringkasan: Gunakan SVC dengan kernel, C dan gamma untuk pengelasan bukan linear, sentiasa dalam alur pemprosesan penskalaan. Beralih kepada LinearSVC untuk data besar atau data teks. Kendalikan ketakseimbangan dengan class_weight="balanced", dan tala C serta gamma secara bersama menggunakan GridSearchCV.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
225

Soalan Lazim

Adakah pelajaran “SVM untuk Pengelasan dengan sklearn” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “SVM untuk Pengelasan dengan sklearn”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “SVM untuk Pengelasan dengan sklearn”?

SVC, LinearSVC, pemilihan kernel, class_weight='balanced', probability=True. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “SVM untuk Pengelasan dengan sklearn” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?

Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Teori SVM: Margin dan Vektor Sokongan
  2. Helah Kernel: RBF, Polinomial dan Sigmoid
  3. SVM untuk Pengelasan dengan sklearn
  4. SVM untuk Regresi (SVR)
← Kembali ke Pelajari AI dengan Python