Beispiel für einen Support-Vector-Machine-Algorithmus in Python

王林
Freigeben: 2023-06-10 16:42:14
Original
1391 Leute haben es durchsucht

Support Vector Machines, der vollständige englische Name lautet Support Vecto Machines, kurz SVM. Es ist ein sehr hervorragendes Klassifizierungsmodell, insbesondere für die Erkennung kleiner Stichproben, nichtlinearer und hochdimensionaler Muster. SVM wurde 1992 vom Vapnik-Team vorgeschlagen. Es wurde zunächst zur Lösung von Problemen mit zwei Klassifizierungen verwendet und entwickelte sich später schrittweise zu einem Algorithmus, der Probleme mit mehreren Klassifizierungen bewältigen kann.

Python ist eine prägnante und leistungsstarke Programmiersprache, die zahlreiche Algorithmenpakete für maschinelles Lernen implementiert, einschließlich SVM. In diesem Artikel werden die Schritte zur Implementierung des Support Vector Machine-Algorithmus über Python vorgestellt.

1. Daten vorbereiten

Lassen Sie uns einen einfachen Satz Trainingsdaten erstellen. Erstellen Sie einen Beispieldatensatz, in dem x1 die Größe, x2 das Gewicht und y die Klassenbezeichnung (0 oder 1) darstellt.

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(7)
X_train = np.array([[167, 75], [182, 80], [176, 85], [156, 50], [173, 70], [183, 90], [178, 75], [156, 45],
                    [162, 55], [163, 50], [159, 45], [180, 85]])
y_train = np.array([0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1])
plt.scatter(X_train[y_train == 0][:, 0], X_train[y_train == 0][:, 1], c='r', s=40, label='Male')
plt.scatter(X_train[y_train == 1][:, 0], X_train[y_train == 1][:, 1], c='b', s=40, label='Female')
plt.legend()
plt.xlabel('Height')
plt.ylabel('Weight')
plt.show()
Nach dem Login kopieren

In diesem Datensatz klassifizieren wir Menschen als männlich oder weiblich.

2. Wählen Sie einen Klassifikator aus

Als nächstes müssen wir einen für dieses Problem geeigneten Klassifikator auswählen, nämlich SVM. Es gibt viele Varianten von SVM, aber hier verwenden wir lineare SVM.

Lassen Sie uns ein SVM-Modell erstellen:

from sklearn.svm import SVC

svm = SVC(kernel='linear')
svm.fit(X_train, y_train)
Nach dem Login kopieren

Hier verwenden wir die Klasse SVC und geben den Parameter kernel als linear an, was angibt, dass wir verwenden ein linearer Kernel. SVC类,指定kernel参数为linear,表明我们使用线性核。

三、绘制决策边界

我们想要知道模型的性能如何,因此我们可以在绘制出分类器的决策边界:

def plot_decision_boundary(model, ax=None):
    if ax is None:
        ax = plt.gca()
    x_min, x_max = ax.get_xlim()
    y_min, y_max = ax.get_ylim()
    xx, yy = np.meshgrid(np.linspace(x_min, x_max, 100),
                         np.linspace(y_min, y_max, 100))
    Z = model.predict(np.c_[xx.ravel(), yy.ravel()]).reshape(xx.shape)
    ax.contourf(xx, yy, Z, alpha=0.2)
    ax.contour(xx, yy, Z, colors='black', linewidths=0.5)
    ax.set_xlim([x_min, x_max])
    ax.set_ylim([y_min, y_max])
    
plt.scatter(X_train[y_train == 0][:, 0], X_train[y_train == 0][:, 1], c='r', s=40, label='Male')
plt.scatter(X_train[y_train == 1][:, 0], X_train[y_train == 1][:, 1], c='b', s=40, label='Female')
plot_decision_boundary(svm)
plt.legend()
plt.xlabel('Height')
plt.ylabel('Weight')
plt.show()
Nach dem Login kopieren

运行结束后,可以看到绘制出了分类器的决策边界。

四、预测新数据

我们可以用训练好的模型对新的数据进行预测。

X_test = np.array([[166, 70], [185, 90], [170, 75]])
y_test = svm.predict(X_test)
print(y_test)
Nach dem Login kopieren

在这里,我们使用predict

3. Zeichnen Sie die Entscheidungsgrenze

Wir möchten die Leistung des Modells kennen, damit wir die Entscheidungsgrenze des Klassifikators zeichnen können:

rrreee

Nach dem Ausführen können Sie sehen, dass die Entscheidungsgrenze des Klassifikators gezeichnet ist. 🎜🎜4. Neue Daten vorhersagen🎜🎜Wir können das trainierte Modell verwenden, um neue Daten vorherzusagen. 🎜rrreee🎜Hier verwenden wir die Funktion predict, um drei neue Datenproben vorherzusagen. Es wird ihre Kategorie zurückgegeben. 🎜🎜Fazit🎜🎜In diesem Artikel haben wir die Verwendung des Support Vector Machine-Algorithmus in Python vorgestellt. Wir haben einen Klassifikator erstellt, indem wir einen einfachen Trainingsdatensatz erstellt und lineare SVM verwendet haben. Wir haben auch die Entscheidungsgrenzen des Klassifikators aufgezeichnet und das Modell verwendet, um neue Datenproben vorherzusagen. SVM ist auch bei vielen Gelegenheiten ein sehr beliebter Algorithmus und kann in vielen Bereichen eine gute Leistung erzielen. Wenn Sie bei der Datenverarbeitung mehr Algorithmen für maschinelles Lernen beherrschen möchten, lohnt es sich auch, SVM zu erlernen. 🎜

Das obige ist der detaillierte Inhalt vonBeispiel für einen Support-Vector-Machine-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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!