サポートベクターマシンのサンプルコード教えて
サポートベクターマシン(Support Vector Machine、SVM)は、Scikit-learnを使用して比較的簡単に実装できます。以下は、SVMを使用して二値分類を行うためのサンプルコードです。この例では、Scikit-learnの組み込みのデータセットであるIrisデータセットを使用して、2つのクラスを分類します。
python
from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score # Irisデータセットをロード iris = datasets.load_iris() X = iris.data y = iris.target # 二値分類を行うため、クラスラベルを0と1に変更 # この例では、Iris Setosa(クラス0)とIris Versicolor(クラス1)を分類します X = X[y != 2] # クラス2(Iris Virginica)のデータを除外 y = y[y != 2] # クラス2に対応するラベルを除外 # データをトレーニングセットとテストセットに分割 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # SVMモデルを作成 svm_model = SVC(kernel='linear') # 線形カーネルを使用 # モデルをトレーニング svm_model.fit(X_train, y_train) # テストデータで予測 y_pred = svm_model.predict(X_test) # モデルの性能を評価 accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy}")
このコードでは、Irisデータセットから2つのクラス(Iris SetosaとIris Versicolor)を分類するために線形カーネルを使用したSVMモデルをトレーニングしています。データセットをトレーニングセットとテストセットに分割し、モデルの性能を評価するために正確度(accuracy)を計算しています。
SVMはさまざまなカーネル関数を使用できるため、問題に合わせて適切なカーネルを選択することが重要です。この例では線形カーネルを使用しましたが、他のカーネル(RBF、多項式など)も利用できます。また、ハイパーパラメータの調整も性能向上に役立つことがあります。

ディスカッション
コメント一覧
まだ、コメントがありません