Überwachtes Lernen mit Supportvektoren

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Tutorial lernen wir über Support Vector Machines (SVM), die eine Gruppe von Methoden für das überwachte Lernen sind, die zur Klassifikation, Regression und Ausreißererkennung verwendet werden. SVMs sind in hochdimensionalen Räumen effektiv und können auch dann gut funktionieren, wenn die Anzahl der Dimensionen größer ist als die Anzahl der Samples.

Die Vorteile von SVMs umfassen ihre Effektivität in hochdimensionalen Räumen, die Speicher-effizienz und die Vielseitigkeit in Bezug auf verschiedene Kernel-Funktionen. Es ist jedoch wichtig, das Überanpassen zu vermeiden und den richtigen Kernel und die richtige Regularisierung für das gegebene Problem auszuwählen.

In diesem Tutorial werden wir die folgenden Themen behandeln:

  1. Klassifikation mit SVM
  2. Mehrklassen-Klassifikation
  3. Scores und Wahrscheinlichkeiten
  4. Ungleiche Verteilungen
  5. Regression mit SVM
  6. Dichte-Schätzung und Neuentdeckungsdetection

VM Tipps

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der linken oberen Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby um Hilfe bitten. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie schnellstmöglich beheben.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 88% ist. Es hat eine positive Bewertungsrate von 67% von den Lernenden erhalten.

Klassifikation mit SVM

  • Beginnen Sie mit dem Import der erforderlichen Bibliotheken:
from sklearn import svm
  • Definieren Sie die Trainingssamples X und die Klassenlabels y:
X = [[0, 0], [1, 1]]
y = [0, 1]
  • Erstellen Sie eine Instanz des SVC-Klassifizierers und passen Sie die Daten an:
clf = svm.SVC()
clf.fit(X, y)
  • Verwenden Sie das trainierte Modell, um neue Werte vorherzusagen:
clf.predict([[2., 2.]])

Mehrklassen-Klassifikation

  • Die SVC- und NuSVC-Klassifizierer können zur Mehrklassen-Klassifikation mit der "one-versus-one"-Methode verwendet werden:
X = [[0], [1], [2], [3]]
Y = [0, 1, 2, 3]
clf = svm.SVC(decision_function_shape='ovo')
clf.fit(X, Y)
dec = clf.decision_function([[1]])

Scores und Wahrscheinlichkeiten

  • SVMs liefern keine direkten Wahrscheinlichkeitsschätzungen, aber Sie können die Wahrscheinlichkeitsschätzung aktivieren, indem Sie den Parameter probability auf True setzen:
clf = svm.SVC(probability=True)
clf.fit(X, y)
  • Anschließend können Sie die Methode predict_proba verwenden, um die Wahrscheinlichkeiten für jede Klasse zu erhalten:
clf.predict_proba([[2., 2.]])
  • Beachten Sie, dass die Wahrscheinlichkeitsschätzung aufwendig ist und eine Kreuzvalidierung erfordert, also verwenden Sie sie mit Bedacht.

Ungleiche Verteilungen

  • SVMs können ungleiche Verteilungen durch Anpassen des Parameters class_weight behandeln:
clf = svm.SVC(class_weight={1: 10})
clf.fit(X, y)

Regression mit SVM

  • Für Regressionsprobleme können SVMs mit der Klasse SVR verwendet werden:
X = [[0, 0], [1, 1]]
y = [0.5, 2.5]
regr = svm.SVR()
regr.fit(X, y)
regr.predict([[1, 1]])

Dichteschätzung und Neuentdeckungsdetection

  • SVMs können auch zur Dichteschätzung und Neuentdeckungsdetection mit der Klasse OneClassSVM verwendet werden:
clf = svm.OneClassSVM()
clf.fit(X)
clf.predict(X)

Zusammenfassung

In diesem Tutorial haben wir uns mit Support Vector Machines (SVM) und ihren Anwendungen in der Klassifikation, Regression, Dichteschätzung und Neuentdeckungsdetection beschäftigt. Wir haben die Schritte für die Klassifikation, die Mehrklassenklassifikation, die Scores und Wahrscheinlichkeiten, die ungleichen Verteilungen, die Regression und die Dichteschätzung behandelt. SVMs sind leistungsstarke Werkzeuge für maschinelles Lernen und können in verschiedenen Szenarien eingesetzt werden, um genaue Vorhersagen zu erzielen.