ホームページ  >  記事  >  バックエンド開発  >  Python での SVM の例

Python での SVM の例

PHPz
PHPzオリジナル
2023-06-11 20:42:061076ブラウズ

Python のサポート ベクター マシン (SVM) は、分類および回帰の問題を解決するために使用できる強力な教師あり学習アルゴリズムです。 SVM は、高次元データや非線形問題を処理する場合に優れたパフォーマンスを発揮し、データ マイニング、画像分類、テキスト分類、バイオインフォマティクスなどの分野で広く使用されています。

この記事では、Python で SVM を使用して分類する例を紹介します。多くの強力な機械学習アルゴリズムを提供する scikit-learn ライブラリの SVM モデルを使用します。

まず、scikit-learn ライブラリをインストールする必要があります。これは、ターミナルで次のコマンドを使用してインストールできます。

pip install scikit-learn

次に、クラシックな Iris データ セットを使用して、 SVM の分類効果。 Iris データ セットには 150 個のサンプルが含まれており、3 つのカテゴリに分かれており、各カテゴリには 50 個のサンプルが含まれています。各サンプルには、がく片の長さ、がく片の幅、花弁の長さ、花びらの幅の 4 つの特徴があります。 SVM を使用してこれらのサンプルを分類します。

まず、必要なライブラリをインポートする必要があります:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

次に、Iris データ セットをロードします:

iris = datasets.load_iris()

次に、データをトレーニング セットに分割し、テスト セット:

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

ここでは、train_test_split 関数を使用して、データ セットをトレーニング セットとテスト セットにランダムに分割します。test_size パラメーターは、テスト セットがデータ セット全体の 30% を占めることを指定します。 。

次に、SVM モデルを使用してトレーニング セットを適合させます。

clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

ここでは、線形カーネル関数を使用し、正則化パラメーター C=1 を指定します。 SVM のハイパーパラメータ C は、モデルの精度と複雑さの間のトレードオフを制御します。 C 値が小さいほど、モデルは単純になり、過小適合になりやすくなります。C 値が大きいほど、モデルはより複雑になり、過適合になりやすくなります。通常、相互検証を通じて適切な C 値を選択する必要があります。

次に、トレーニング済みモデルを使用してテスト セットを予測します:

y_pred = clf.predict(X_test)

最後に、accuracy_score 関数を使用して分類精度を計算できます:

accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

Complete コード

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

# Load iris dataset
iris = datasets.load_iris()

# Split data into train and test
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

# Fit SVM model on training data
clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

# Predict on test data
y_pred = clf.predict(X_test)

# Compute accuracy score
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

この例では、非常に一般的なデータ セットである Iris データ セットをターゲットとして、分類に SVM モデルを使用します。 SVM の利点は、強力な分類機能と、高次元データおよび非線形問題への適合性です。 SVM を実装するには、最良の分類効果を達成するために一連のハイパーパラメータを調整する必要があります。

以上がPython での SVM の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。