前回の記事は【Azure Machine Learning Studioのモデル作成・デプロイするサービス】を説明しました。
この記事では、Azure ML StudioでTwo class decision forestモデルをお話になります
Two class decision forestとは(ランダムフォレスト)
決定木を弱学習器とする集団学習アルゴリズムであり、この名称は、ランダムサンプリングされたトレーニングデータによって学習した多数の決定木を使用しています。つまりランダムフォレストのようなものになります。
詳細の説明はこちらです。
では、下記の献血の過去のデータから、献血の分類モデルを作成します。

「Two class decision forest」のモデルを作成します。
インポートデータを学習とテストを分けます。学習データからモデル作成します。そして、学習したモデルの予測結果とテストに対して評価します。

精度が高くするために、パラメータを変更します。
値が高ければ高いほど色んな組み合わせが試されるため、精度が上がる可能性が高まりますが、その分実行回数も多いため、結果を得られるまでの時間が長くなります。

設定の説明:
Resampling method
Bagging または、Replicateの木の構築方法を選択することができます。
Bagging(バギング)はブートストラップアグリゲーションとも呼ばれます。この方法では、各ツリーは、元のデータセットのサイズと同じサイズになるまで、元のデータセットを置換しながらランダムにサンプリングすることによって作成された新しいサンプルで作成されます。
Replicate(複製)各ツリーはまったく同じ入力データについてトレーニングされます。どの分割述語が各ツリーノードに使用されるかの決定はランダムなままであり、ツリーは多様になるだろう
Create trainer mode
モデルの学習方法を選べます。
Single Parameter(単一パラメータ)モデルの構成方法がわかっている場合は、引数として特定の値のセットを指定できます。
Parameter Range(パラメータ範囲)最適なパラメータがわからない場合は、複数の値を指定し、Tune Model Hyper parametersモジュールを使用して最適な設定を見つけることによって、最適なパラメータを見つけることができます。提供された設定の複数の組み合わせを反復し、最良のモデルを生成する値の組み合わせを決定します。
Number of decision trees
アンサンブルに作成する決定木の総数を示します。 より多くの決定木を作成することで、より良い精度を得ることができますが、トレーニング時間が長くなります。この値は、訓練されたモデルを視覚化するときに表示されるツリーの数も制御します。ただし過学習しやすくなります。
Maximum depth of the decision trees
決定木の最大深度を制限する数値を入力します。 木の深さを深くすると、精度が上がる可能性があります。その場合は、過学習になるのとトレーニング時間が長くなる可能性があります。
Minimum number of samples
ツリー内に任意の終端ノード(リーフ)を作成するために必要なケースの最小数を示します。
この値を大きくすると、新しいルールを作成するためのしきい値が上がります。 たとえば、デフォルト値の1では、1つのケースでも新しいルールが作成される可能性があります。 値を5に増やすと、トレーニングデータに同じ条件を満たすケースが少なくとも5つ含まれるようになります。少なければ少ないほど過学習になります。
Number of random splits per node
ツリーの各ノードを構築するときに使用する分割数を入力します。 分割は、ツリー(ノード)の各レベルのフィーチャがランダムに分割されることを意味します。
パラメータを変更しないで、テストデータのAUCは0.64です。


パラメターチューニング
では、パラメータを変更して、 AUCを上がるようにします。
「Number of decision trees」を24に増やします。
テストデータのAUCは6.47に0.05を上がりました。

次は、Number of random splits per nodeを変更します。
Number of random splits per nodeを256に追加しましが、
テストデータのAUC は0.632に下がってしまいました。

次に「Maximum depth of the decision trees」を64に設定します。
テストデータのAUCが変わらない結果になりました。

まとめ
モデルの精度が上がるために、パラメータを行いました。数回のパラメーターチューニングをしましたが、モデルの精度が上がる、下がる、変更なしの結果になりました。
次回の記事は「Tune Hyper Parameter」とは、適当に何個かのパラメータを用意し、それぞれの組み合わせで試した後、一番精度の高かったパラメータの組み合わせの学習モデルを説明します。