Wie schreibe ich einen SVM-Algorithmus in Python?

WBOY
Freigeben: 2023-09-21 12:06:11
Original
751 Leute haben es durchsucht

Wie schreibe ich einen SVM-Algorithmus in Python?

Wie schreibe ich einen SVM-Algorithmus in Python?

SVM (Support Vector Machine) ist ein häufig verwendeter Klassifizierungs- und Regressionsalgorithmus, der auf der statistischen Lerntheorie und dem Prinzip der strukturellen Risikominimierung basiert. Es verfügt über eine hohe Genauigkeit und Generalisierungsfähigkeit und ist für verschiedene Datentypen geeignet. In diesem Artikel stellen wir detailliert vor, wie der SVM-Algorithmus mit Python geschrieben wird, und stellen spezifische Codebeispiele bereit.

  1. Installieren Sie Python und verwandte Bibliotheken
    Bevor Sie mit dem Schreiben des SVM-Algorithmus beginnen, müssen Sie zunächst sicherstellen, dass Python und verwandte Bibliotheken für maschinelles Lernen installiert wurden. Es wird empfohlen, Anaconda als integrierte Entwicklungsumgebung für Python zu verwenden. Es verfügt nicht nur über einen Python-Interpreter, sondern enthält auch viele häufig verwendete Bibliotheken für wissenschaftliches Rechnen und maschinelles Lernen. Installieren Sie die Scikit-Learn-Bibliothek mit dem folgenden Befehl:
pip install scikit-learn
Nach dem Login kopieren
  1. Importieren Sie die erforderlichen Bibliotheken
    Importieren Sie die erforderlichen Bibliotheken, einschließlich Scikit-Learn, Numpy und Matplotlib.
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets
Nach dem Login kopieren
  1. Laden des Datensatzes
    Um das Schreiben des SVM-Algorithmus zu demonstrieren, verwenden wir den berühmten Iris-Datensatz. Der Iris-Datensatz enthält 150 Irisblütenproben, jede Probe weist 4 Merkmale auf. Wir haben den Datensatz in zwei Kategorien unterteilt: Setosa und Versicolor, zwei Arten von Irisblüten.
iris = datasets.load_iris()
X = iris.data[:, :2]  # 我们只使用前两个特征
y = iris.target
Nach dem Login kopieren
  1. Modell trainieren
    Verwenden Sie SVM, um das Modell zu trainieren. Hier verwenden wir eine lineare Kernelfunktion.
C = 1.0  # SVM正则化参数
svc = svm.SVC(kernel='linear', C=C).fit(X, y)
Nach dem Login kopieren
  1. Entscheidungsgrenze zeichnen
    Um den Klassifizierungseffekt von SVM besser zu verstehen, können wir die Entscheidungsgrenze zeichnen. Zuerst erstellen wir ein Raster, um den gesamten Funktionsraum abzutasten.
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
h = (x_max / x_min)/100
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Nach dem Login kopieren

Dann verwenden wir dieses Raster als Eingabemerkmale, um die Entscheidungsgrenze vorherzusagen und zu ermitteln.

Z = svc.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
Nach dem Login kopieren

Abschließend verwenden wir die Matplotlib-Bibliothek, um die Beispielpunkte und Entscheidungsgrenzen zu zeichnen.

plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.show()
Nach dem Login kopieren
  1. Vollständiges Codebeispiel
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets

# 加载数据集
iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

# 训练模型
C = 1.0  # SVM正则化参数
svc = svm.SVC(kernel='linear', C=C).fit(X, y)

# 画出决策边界
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
h = (x_max / x_min)/100
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = svc.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.show()
Nach dem Login kopieren

Zusammenfassung:
Durch die oben genannten Schritte haben wir den SVM-Algorithmus erfolgreich mit Python geschrieben und ihn anhand des Iris-Datensatzes demonstriert. Dies ist natürlich nur eine einfache Anwendung des SVM-Algorithmus. Es gibt viele Möglichkeiten, SVM zu erweitern und zu verbessern, z. B. die Verwendung verschiedener Kernelfunktionen, die Anpassung des Regularisierungsparameters C usw. Ich hoffe, dass dieser Artikel Ihnen hilft, den SVM-Algorithmus zu lernen und zu verstehen.

Das obige ist der detaillierte Inhalt vonWie schreibe ich einen SVM-Algorithmus in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage