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:
kerneljenis batas (linear, rbf, poly)Cpenalti kesalahan / regularisasigammalebar 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 5xEstimasi 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
- Teori SVM: Margin dan Vektor Pendukung
- Trik Kernel: RBF, Polinomial, dan Sigmoid
- SVM untuk Klasifikasi dengan sklearn
- SVM untuk Regresi (SVR)