0Pricing
Learn AI with Python · Pelajaran

SVM untuk Klasifikasi dengan sklearn

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

SVM untuk Klasifikasi dengan sklearn adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.

SVM dalam scikit-learn

scikit-learn menyediakan beberapa pengklasifikasi SVM. Pengklasifikasi utamanya adalah SVC, yang mendukung batas linear dan berbasis kernel melalui parameternya, 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 Inti SVC

Tiga parameter menentukan perilaku SVC:

  • kernel jenis batas (linear, rbf, poly)
  • C penalti kesalahan / regularisasi
  • gamma lebar kernel untuk rbf/poly
from sklearn.svm import SVC

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

Selalu Skalakan Terlebih Dahulu

SVM sensitif terhadap skala. Bungkus penskala dan SVC dalam alur pemrosesan agar penskalaan hanya dilatih pada data pelatihan, bahkan selama validasi 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 Dataset Besar

SVC(kernel="linear") tidak berskala baik untuk jumlah sampel yang besar. LinearSVC menggunakan pemecah yang lebih cepat dan dioptimalkan untuk masalah linear, serta menangani 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 vs LinearSVC

Gunakan LinearSVC untuk data besar atau jarang (seperti teks). Gunakan SVC saat Anda memerlukan kernel untuk batas non-linear. Perhatikan bahwa LinearSVC menggunakan fungsi kerugian yang sedikit berbeda dan tidak memiliki predict_proba.

Ketidakseimbangan Kelas

Ketika salah satu kelas jarang muncul, SVM cenderung memihak kelas mayoritas. Menetapkan class_weight="balanced" secara otomatis memberi bobot pada kelas secara berbanding terbalik dengan frekuensinya.

from sklearn.svm import SVC

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

Bobot Kelas Khusus

Anda juga dapat meneruskan kamus eksplisit ke class_weight untuk memberikan penekanan yang lebih besar pada kelas tertentu dibandingkan penyeimbangan otomatis.

from sklearn.svm import SVC

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

Estimasi Probabilitas

Secara bawaan, SVC mengembalikan label diskret. Tetapkan probability=True untuk mengaktifkan predict_proba (melalui kalibrasi internal), yang diperlukan untuk ROC AUC dan penyetelan ambang batas. Namun, pelatihan menjadi lebih lambat.

from sklearn.svm import SVC

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

SVM Multikelas

SVC secara otomatis menangani lebih dari dua kelas menggunakan skema satu lawan satu. Anda tidak perlu mengubah kode; cukup lakukan fit dengan label multikelas dan semuanya akan berjalan.

from sklearn.svm import SVC

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

Menyetel C dan gamma dengan GridSearchCV

Resep standarnya adalah melakukan pencarian kisi atas C dan gamma pada skala logaritmik, semuanya di dalam alur pemrosesan 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_)

Kiat Praktis

SVM unggul pada kumpulan data kecil hingga menengah dengan margin yang jelas. SVM kesulitan menangani data yang sangat besar (gunakan LinearSVC atau beralih ke metode peningkatan bertahap). Selalu lakukan penskalaan, setel C dan gamma, serta gunakan class_weight untuk menangani ketidakseimbangan.

Pemeriksaan Singkat

Uji pengetahuan Anda tentang SVM sklearn.

Ringkasan

Ringkasan: Gunakan SVC dengan kernel, C, dan gamma untuk klasifikasi nonlinier, selalu di dalam alur pemrosesan penskalaan. Beralihlah ke LinearSVC untuk data besar atau data teks. Tangani ketidakseimbangan dengan class_weight="balanced", lalu setel C dan gamma secara bersamaan menggunakan GridSearchCV.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “SVM untuk Klasifikasi dengan sklearn” gratis?

Ya — teks lengkap “SVM untuk Klasifikasi dengan sklearn” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “SVM untuk Klasifikasi dengan sklearn”?

SVC, LinearSVC, pemilihan kernel, class_weight='balanced', probability=True. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “SVM untuk Klasifikasi dengan sklearn” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Teori SVM: Margin dan Vektor Pendukung
  2. Trik Kernel: RBF, Polinomial, dan Sigmoid
  3. SVM untuk Klasifikasi dengan sklearn
  4. SVM untuk Regresi (SVR)
← Kembali ke Learn AI with Python