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

4 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 8 de Jul. de 2013
Editada: MathWorks Support Team el 22 de Jul. de 2020
SVMTRAIN を使用しています。SVMTRAIN は自動的にカーネルパラメータを最適化しているのか教えてください。また、手動でカーネルパラメータを設定する方法も教えてください。

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 25 de Ag. de 2020
Editada: MathWorks Support Team el 22 de Jul. de 2020
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

Más respuestas (0)

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!