Heim  >  Artikel  >  Backend-Entwicklung  >  Wie schreibe ich einen SVM-Algorithmus in Python?

Wie schreibe ich einen SVM-Algorithmus in Python?

WBOY
WBOYOriginal
2023-09-21 12:06:11699Durchsuche

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
  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
  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
  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)
  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))

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)

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()
  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()

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!

Stellungnahme:
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