0Pricing
Learn AI with Python · Lektion

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. Regularisierung
  • gamma: 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 5x

Wahrscheinlichkeitsschä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

  1. SVM-Theorie: Margins und Support-Vektoren
  2. Kernel-Trick: RBF, polynomialer Kernel und Sigmoid
  3. SVMs zur Klassifikation mit sklearn
  4. SVMs zur Regression (SVR)
← Zurück zu Learn AI with Python