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.
pip install scikit-learn
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))
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()
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!