pythonでサポートベクターマシンを用いた分別の機械学習をしています。
サポートベクターマシンで過学習を低減させる方法はあるのでしょうか?
ニューラルネットワークなどの過学習を低減させるときに「ドロップアウト」を入れています。
ドロップアウトのようなものは、サポートベクターマシンにはないのでしょうか?
この辺、お詳しい方、ご指導頂ければありがたいです。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
サポートベクターマシンで過学習を低減させる方法はあるのでしょうか?
- データが少ない場合は増やす。
- 特徴量の次元数が多いなら、線形カーネルを使用する。(sklearn.svm.LinearSVC)
- 誤差項のペナルティ C の値を小さい値にする。
パラメータの調整は GridSearchCV を使うとよいでしょう。
scikit-learnのGridSearchCVでハイパーパラメータ探索 - Qiita
追記
GridSearchCVは、使えるレベルに至っておりませんので、とりあえず、手動でいろいろ値を変化させてみようと思います。
試行するパラメータを設定して、GridSearchCV オブジェクトを作成し、あとは通常と同じように fit() を呼び出すだけなので、簡単に使えますよ。
以下にサンプルコードを載せておきます。
python
1import pandas as pd 2from sklearn.datasets import load_iris 3from sklearn.model_selection import GridSearchCV, train_test_split 4from sklearn.svm import SVC 5 6# データセットを準備する。 7X, y = load_iris(return_X_y=True) 8X_train, X_test, y_train, y_test = train_test_split( 9 X, y, test_size=0.15, stratify=y, random_state=0 10) 11 12# 試行するパラメータとその値 13params = {"kernel": ["linear", "rbf"], "C": [0.01, 0.1, 1, 10, 100, 1000]} 14 15# グリッドサーチする。 16base_model = SVC(gamma="scale") 17clf = GridSearchCV(base_model, params, cv=5, return_train_score=False, iid=False) 18clf.fit(X_train, y_train) 19 20# 最も精度がいいモデルを取得する。 21best_clf = clf.best_estimator_ 22print("score: {:.2%}".format(best_clf.score(X_test, y_test))) # score: 100.00% 23print(clf.best_params_) # {'C': 1, 'kernel': 'linear'}
投稿2019/10/24 06:30
編集2019/10/24 07:22総合スコア21956
0
ベストアンサー
こちらがヒントになるかもしれません。
SVM(RBFカーネル)のハイパーパラメータを変えると何が起こるの? - Qiita
Cは誤分類を許容する度合いに関するパラメータで、小さいほど汎化性能が上がりやすくなります。また、分離境界の複雑性に関するパラメータも大抵のカーネルでは設定することができ、RBFカーネルならgammaが相当します。
投稿2019/10/24 07:12
総合スコア30935
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/25 02:08
2019/10/25 02:29
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/24 07:03
2019/10/24 07:06
2019/10/24 07:13
2019/10/24 07:23
2019/10/25 00:43