Wolfram言語

向上した機械学習の機能

分類子の最適パラメータを求める

データ集合をロードし,訓練集合と検証集合に分割する.

In[1]:=
Click for copyable input
data = RandomSample[ ExampleData[{"MachineLearning", "Titanic"}, "Data"] ]; training = data[[;; 1000]]; test = data[[1001 ;;]];

分類子のパフォーマンスを計算する関数を,その(ハイパー)パラメータの関数として定義する.

In[2]:=
Click for copyable input
loss[{c_, gamma_, b_, d_}] := -ClassifierMeasurements[ Classify[training, Method -> {"SupportVectorMachine", "KernelType" -> "Polynomial", "SoftMarginParameter" -> Exp[c], "GammaScalingParameter" -> Exp[gamma], "BiasParameter" -> Exp[b], "PolynomialDegree" -> d } ], test, "LogLikelihoodRate"];

パラメータの可能な値を定義する.

In[3]:=
Click for copyable input
region = ImplicitRegion[And[ -3. <= c <= 3., -3. <= gamma <= 3. , -1. <= b <= 2., 1 <= d <= 3 , d \[Element] Integers], { c, gamma, b, d}]
Out[3]=

パラメータの適切な集合を検索する.

In[4]:=
Click for copyable input
bmo = BayesianMinimization[loss, region]
Out[4]=
In[5]:=
Click for copyable input
bmo["MinimumConfiguration"]
Out[5]=

求められたパラメータで分類子を訓練する.

In[6]:=
Click for copyable input
Classify[training, Method -> {"SupportVectorMachine", "KernelType" -> "Polynomial", "SoftMarginParameter" -> Exp[2.979837222482109`], "GammaScalingParameter" -> Exp[-2.1506497693543025`], "BiasParameter" -> Exp[-0.9038364134482837`], "PolynomialDegree" -> 2} ]
Out[6]=

関連する例

de en es fr ko pt-br ru zh