ホームページ  >  記事  >  バックエンド開発  >  Python で分類に SVM を使用するにはどうすればよいですか?

Python で分類に SVM を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-03 15:51:181986ブラウズ

SVM は一般的に使用される分類アルゴリズムであり、機械学習とデータ マイニングの分野で広く使用されています。 Python では、SVM の実装は非常に便利で、関連するライブラリを使用することで完了できます。

この記事では、データの前処理、モデルのトレーニング、パラメーターの調整など、Python での分類に SVM を使用する方法を紹介します。

1. データの前処理

分類に SVM を使用する前に、データが SVM アルゴリズムの要件を満たしていることを確認するためにデータを前処理する必要があります。通常、データの前処理には次の側面が含まれます。

  1. データ クリーニング: SVM 分類への干渉を避けるために、一部の無駄なデータまたは異常なデータを除外します。
  2. データ正規化: データの数値範囲が同じになるように、特定の比率に従ってデータをスケーリングします。
  3. 特徴の選択: データが多すぎる場合は、分類効果を向上させるために最も有益な特徴を選択します。

2. モデルのトレーニング

データの前処理が完了したら、モデルのトレーニングを開始できます。 Python では、モデルのトレーニングに SVM 関連のライブラリを使用できます。

  1. ライブラリのインポート

モデルをトレーニングする前に、関連するライブラリをインポートする必要があります:

import numpy as np
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import precision_score

  1. データのロード

次に、データをロードして続行する必要があります。トレーニング セットとテスト セットの分割:

data = np.loadtxt('data.txt', delimiter=',')
X = data[:, :-1]
y = data[:, -1]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

data.txt はデータ ファイルであり、loadtxt 関数を使用してロードできます。 。 train_test_split 関数は、データをトレーニング セットとテスト セットにランダムに分割するために使用され、test_size パラメーターはテスト セットの比率を指定します。

  1. モデル トレーニング

次に、モデル トレーニングを開始できます:

clf = SVC(C=1.0, kernel='rbf' , gamma= 'auto')
clf.fit(X_train, y_train)

このうち、C パラメータは正則化係数、カーネル パラメータは使用するカーネル関数を指定し、ガンマ パラメータは制御に使用されます。カーネル関数の影響レベル。この例では、RBF カーネル関数を使用します。

  1. モデルの評価

トレーニングが完了したら、モデルの評価を実行する必要があります:

y_pred = clf.predict(X_test)
acc = precision_score (y_test, y_pred)
print('Accuracy:', acc)

このうち、accuracy_score 関数はモデルの精度を計算するために使用されます。

3. パラメーターの調整

モデルのトレーニング後、パラメーターの調整を実行して、モデルの分類効果をさらに向上させることができます。 SVM で一般的に使用されるパラメーター調整方法には、グリッド検索と相互検証が含まれます。

  1. グリッド検索

グリッド検索は、考えられるすべてのパラメーターの組み合わせを横断して最適なパラメーターの組み合わせを検索する総当たり検索方法です。 Python では、GridSearchCV 関数を使用してグリッド検索を実装できます。

from sklearn.model_selection import GridSearchCV

パラメータ範囲の定義

param_grid = {'C': [0.1, 1.0, 10.0],

          'kernel': ['linear', 'rbf'],
          'gamma': ['auto', 0.1, 0.01]}

Carry out グリッド検索

gs = GridSearchCV(SVC(), param_grid, cv=5)
gs.fit(X_train, y_train)

最適なパラメータを出力

print ('Best:', gs.best_params_)

このうち、param_grid はパラメータの範囲を指定し、cv パラメータは相互検証の数を指定します。実行が完了すると、最適なパラメータの組み合わせを出力できます。

  1. 相互検証

相互検証は、サンプリングを繰り返してモデルのパフォーマンスを検証する方法です。 Python では、cross_val_score 関数を使用して相互検証を実装できます。

from sklearn.model_selection importcross_val_score

相互検証の実行

scores =cross_val_score(clf, X_train, y_train, cv=5)

出力相互検証Result

print('CV スコア:', スコア)

このうち、cv パラメータは相互検証の数を指定します。実行が完了したら、相互検証の結果を出力できます。

4. 概要

この記事では、データの前処理、モデルのトレーニング、パラメーターの調整など、Python での分類に SVM を使用する方法を紹介します。分類問題は SVM を使用して効果的に解決でき、Python の関連ライブラリも SVM を実装するための便利なツールを提供します。この記事が分類に SVM を使用する際の読者の役に立つことを願っています。

以上がPython で分類に SVM を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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