SVMTRAIN 関数で多項式や RBF カーネルのパラメータ (gamma, C) を決定する方法はありますか?

SVMTRAIN を使用しています。SVMTRAIN は自動的にカーネルパラメータを最適化しているのか教えてください。また、手動でカーネルパラメータを設定する方法も教えてください。

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2020년 8월 25일
편집: MathWorks Support Team 2020년 7월 22일

0 개 추천

MATLAB はカーネルパラメータの最適化はしていません。ユーザーがパラメータを指定しない限り、既定の値を使用します。多項式カーネルのオーダーは既定では 3 になっています。このオーダーを 4 に変更するには以下のコードを使用します。
svmstruct = svmtrain(data, groups, 'Kernel_Function', 'polynomial', 'Polyorder', 4)
RBF カーネルに関しても同様です。MATLAB は以下のような RBF カーネルを使用しています。
k_rbf(x,y) = exp(-1/(2*sigma^2) * ||x-y||^2).
文献では、カーネルは以下のように定義されています。
k(x,y) = exp(-gamma * ||x-y||^2)
カーネルパラメータ sigma の既定値は 1 です。これを 0.2 に変更するには以下のコードを使用します。
svmstruct = svmtrain(data, groups, 'Kernel_Function', 'rbf', 'RBF_Sigma', 0.2)
ペナルティパラメータ C は BoxConstraintValue オプションで指定できます。SVMTRAIN では既定値が 1 に設定されており、例えば以下のように手動で 0.8 に変更することができます。
svmstruct = svmtrain(data, groups, 'Kernel_Function', 'rbf', 'RBF_Sigma', 0.2, 'BoxConstraint', 0.8)
これらのパラメータ (sigma, C) の最適解を求めるにはクロスバリデーションとグリッドサーチあるいは解の最適化を行います。その手順は以下のページをご確認ください。
- SVM Classification with Cross Validation

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!