SVMs zur Klassifikation mit sklearn
SVC, LinearSVC, Kernel-Auswahl, class_weight='balanced', probability=True.
SVMs zur Klassifikation mit sklearn ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
SVMs in scikit-learn
scikit-learn bietet mehrere SVM-Klassifikatoren. Der wichtigste ist SVC, der über seinen Parameter kernel lineare und Kernel-basierte Grenzen unterstützt.
from sklearn.svm import SVC
model = SVC(kernel="rbf", C=1.0, gamma="scale")
model.fit(Xtr, ytr)
print(model.score(Xte, yte))Die wichtigsten SVC-Parameter
Drei Parameter bestimmen das Verhalten von SVC:
kernel: der Grenztyp (linear, rbf, poly)C: die Fehlerstrafe bzw. Regularisierunggamma: die Kernelbreite für rbf/poly
from sklearn.svm import SVC
model = SVC(kernel="rbf", C=10, gamma=0.1)Zuerst immer skalieren
SVMs reagieren empfindlich auf unterschiedliche Skalen. Fassen Sie den Scaler und SVC in einer Pipeline zusammen, damit die Skalierung nur mit den Trainingsdaten angepasst wird, auch innerhalb einer Cross-Validation.
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 für große Datensätze
SVC(kernel="linear") skaliert bei vielen Stichproben schlecht. LinearSVC verwendet einen schnelleren Solver, der für lineare Probleme optimiert ist, und verarbeitet große, hochdimensionale Daten deutlich besser.
from sklearn.svm import LinearSVC
model = LinearSVC(C=1.0, max_iter=5000)
model.fit(Xtr, ytr)SVC oder LinearSVC
Verwenden Sie LinearSVC für große oder dünn besetzte Daten (z. B. Textdaten). Verwenden Sie SVC, wenn Sie Kernel für nichtlineare Grenzen benötigen. Beachten Sie, dass LinearSVC eine etwas andere Verlustfunktion verwendet und kein predict_proba unterstützt.
Klassenungleichgewicht
Wenn eine Klasse selten ist, bevorzugt die SVM tendenziell die Mehrheitsklasse. Durch das Setzen von class_weight="balanced" werden die Klassen automatisch umgekehrt proportional zu ihrer Häufigkeit gewichtet.
from sklearn.svm import SVC
model = SVC(kernel="rbf", class_weight="balanced")
model.fit(Xtr, ytr)Benutzerdefinierte Klassengewichte
Sie können auch ein explizites Dictionary an class_weight übergeben, um eine bestimmte Klasse stärker zu gewichten als bei der automatischen Ausbalancierung.
from sklearn.svm import SVC
model = SVC(class_weight={0: 1, 1: 5}) # class 1 errors cost 5xWahrscheinlichkeitsschätzungen
Standardmäßig gibt SVC harte Klassenlabels zurück. Setzen Sie probability=True, um predict_proba zu aktivieren (über eine interne Kalibrierung). Das wird für ROC AUC und die Abstimmung von Schwellenwerten benötigt, verlangsamt jedoch das Training.
from sklearn.svm import SVC
model = SVC(probability=True)
model.fit(Xtr, ytr)
proba = model.predict_proba(Xte)[:, 1]SVMs für mehrere Klassen
SVC verarbeitet automatisch mehr als zwei Klassen mithilfe eines One-vs-One-Verfahrens. Sie müssen Ihren Code nicht ändern: Trainieren Sie das Modell einfach mit Labels für mehrere Klassen, und es funktioniert.
from sklearn.svm import SVC
model = SVC(decision_function_shape="ovr")
model.fit(X_multiclass, y_multiclass)C und gamma mit GridSearchCV abstimmen
Das Standardverfahren ist eine Rastersuche über C und gamma auf einer logarithmischen Skala, und zwar vollständig innerhalb einer Skalierungspipeline.
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_)Praktische Tipps
SVMs eignen sich besonders für kleine bis mittelgroße Datensätze mit klaren Margen. Bei sehr großen Datenmengen haben sie Schwierigkeiten (verwenden Sie LinearSVC oder wechseln Sie zu Boosting). Skalieren Sie immer die Merkmale, stimmen Sie C und gamma ab und verwenden Sie class_weight bei unausgeglichenen Klassen.
Schnelltest
Testen Sie Ihr Wissen über sklearn-SVMs.
Zusammenfassung
Zusammenfassung: Verwenden Sie SVC mit kernel, C und gamma für nichtlineare Klassifikation, immer innerhalb einer Skalierungspipeline. Wechseln Sie bei großen oder Textdaten zu LinearSVC. Behandeln Sie unausgeglichene Klassen mit class_weight="balanced" und stimmen Sie C und gamma gemeinsam mit GridSearchCV ab.
Häufig gestellte Fragen
Ist die Lektion „SVMs zur Klassifikation mit sklearn“ kostenlos?
Ja — der vollständige Text von „SVMs zur Klassifikation mit sklearn“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „SVMs zur Klassifikation mit sklearn“?
SVC, LinearSVC, Kernel-Auswahl, class_weight='balanced', probability=True. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „SVMs zur Klassifikation mit sklearn“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- SVM-Theorie: Margins und Support-Vektoren
- Kernel-Trick: RBF, polynomialer Kernel und Sigmoid
- SVMs zur Klassifikation mit sklearn
- SVMs zur Regression (SVR)