SVM untuk Pengelasan dengan sklearn
SVC, LinearSVC, pemilihan kernel, class_weight='balanced', probability=True.
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:
kerneljenis sempadan (linear, rbf, poly)Cpenalti kesilapan / pengawalseliaangammalebar 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 5xAnggaran 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.
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
- Teori SVM: Margin dan Vektor Sokongan
- Helah Kernel: RBF, Polinomial dan Sigmoid
- SVM untuk Pengelasan dengan sklearn
- SVM untuk Regresi (SVR)