サポート ベクター マシン。英語での正式名称は Support Vecto Machines、略して SVM です。これは、特にサンプルが小さい、非線形および高次元のパターン認識において、非常に優れた分類モデルです。 SVM は 1992 年に Vapnik チームによって提案されました。最初は 2 項分類問題を解決するために使用され、その後徐々に多分類問題を処理できるアルゴリズムに開発されました。
Python は、SVM を含む多数の機械学習アルゴリズム パッケージを実装する、簡潔で強力なプログラミング言語です。この記事では、Python を使用してサポート ベクター マシン アルゴリズムを実装する手順を紹介します。
1. データの準備
単純なトレーニング データのセットを構築しましょう。 x1 が身長、x2 が体重、y がクラス ラベル (0 または 1) であるサンプル データセットを作成します。
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()
このデータセットでは、人々を男性または女性に分類します。
2. 分類器の選択
次に、この問題に適した分類器、つまり SVM を選択する必要があります。 SVM にはさまざまなバリエーションがありますが、ここでは線形 SVM を使用します。
SVM モデルを構築しましょう:
from sklearn.svm import SVC svm = SVC(kernel='linear') svm.fit(X_train, y_train)
ここでは、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()
X_test = np.array([[166, 70], [185, 90], [170, 75]]) y_test = svm.predict(X_test) print(y_test)
predict 関数を使用して 3 つの新しいデータ サンプルを予測します。カテゴリが返されます。
以上がPython でのサポート ベクター マシン アルゴリズムの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。