Azure

Azure ML Studioでの Permutation Feature Importance 特徴の重要度

前回の記事は「Azure ML Studioで顧客データ分析」を説明しました。今回はPermutation Feature Importance を使ってモデルの変数の重要度を判断する機能を説明します。 機械学習モデルを作成するとき、機械学習の開発者、意思決定者、およびモデルによって影響を受ける担当者は、機械学習モデルがどのように決定を行うか、またそのパフォーマンスにどの特徴が関係するかを理解する必要があります。Permutation Feature Importance (PFI) はモデルについて説明するツールであり、機械学習開発者がモデルの変数の重要性をよく理解できるようにします。   Permutation Feature Importanceとは Breiman 著「Random Forests」論文から機械学習モデルのグローバルな特徴の重要性を判断する技術です。特徴量がランダムな値に設定されたら、どのような影響がモデルに及ぼされるかを判明する方法になります。   メリット モデルに依存しない点です。評価することができるすべてのモデルに使用できます。 特徴の重要性を計算するために、トレーニング セットだけでなく任意のデータセットを使用できます。    Permutation Feature Importanceの使い方 Feature Selection > Permutation Feature Importanceを選択します。trained model と左のインプットと接続し、右のインプットはテストデータと接続します。   Permutation Feature Importanceの設定   Random seed このシードを同じ数値にすることで、毎回同じ擬似乱数が生成されます。   Metric for measuring performance このドロップボックスから、一つのメトリックを選択することができます。 Classification Accuracy, Precision, Recall, Average Log Loss Regression Precision, …

Azure ML Studioでの Permutation Feature Importance 特徴の重要度 Read More »

Azure ML Studioで顧客データ分析の実験(CRM analysis)

前回の記事は「Azure ML Studioでの機械学習の設定」を解説しました。 今回の記事はAzure ML Studioで顧客データ分析の実験を紹介します。 今回のデータセットはThe KDD Cup 2009 のデータです。 230特徴量の顧客属性とアップセル、新製品販売、解約の顧客行動履歴のフランスの通信会社Orangeデータです。50,000件のデータから3つの分類分析モデルを作成します。   解決課題 1)アップセルデータでアップセルしやすい人を見つけます。 2)新製品販売のデータで新製品を買う可能性高い人を見つけます。 3)解約データで解約したい人を見つけます   全体のExperimentの図は下記になります。特徴量の顧客属性と3つの過去行動のターゲットを結合して、モデルを作成します。   Var1からVar230は特徴量の5万件のデータセットです。 特徴データは欠損値がありますので、欠損値を0に置き換えます。   「Add Columns」 のモジュールで特徴量のと各ターゲットを結合します。 次に、vol1の層別化でテストとトレーニングを半分に分割します。   次に、予測モデルを構築するために、既定のパラメーターを持つ2クラスブーストデシジョンツリーバイナリ分類器を使用します。 ブースト デシジョン ツリーとは第2の木が第1の木の誤差を補正し、第3の木が第1および第2の木の誤差を補正するというように、集団学習法である。 ツリー全体の集合に基づいて予測あします。   Evaluate Model:アップセルタ テストセットに対するモデルのパフォーマンスは、Evaluate Modelモジュールの出力を視覚化することで確認できます。 「アップセルタ」では、ROC曲線は、モデルがランダムモデルよりも優れていること、および曲線下面積(AUC)が0.857であることを示しています。 しきい値が0.5の場合、精度は0.663、再現率は0.463、F1スコアは0.545です。   Evaluate Model:新製品販売 「新製品販売」のROC曲線では、AUCが0.727であることを示しています。   Evaluate Model:解約 「解約」のROC曲線では、AUCが0.711であります。     モデルの確認 [Train Model]のモジュールの Visualization 決定木図が表します。 モデルの判断を確認することができます。 決定木は、葉が分類を表し、枝がその分類に至るまでの特徴の集まりを表すような木構造を示します。データの持つ素性の中で集められたデータを一番よく分割する素性と閾値の組を選びます.その素性と閾値で分割後、またそれぞれのノードで分割を繰り返し行っていきます。分割が実行不可能となった場合、または、部分集合の個々の要素が各々1つずつの分類となってしまう段階で終了します。 …

Azure ML Studioで顧客データ分析の実験(CRM analysis) Read More »

Azure ML StudioのTune Hyper Parameterのオプション解説

前回の記事は【Azure ML StudioでのTwo class decision forestのパラメータチューニング】を説明しました。 今回の記事では、Azure ML Studioで機械学習モデルのパラメータ最適化の「Tune Hyper Parameter」のお話になります   各アルゴリズムは既定のパラメータを利用して、実験しているため、最適化されていません。ただし、どのパラメータを変更すればいいのは手間になります。そういう時に利用するモジュールが、「Tune Hyper Parameter」です。このモジュールは、適当に何個かのパラメータを用意し、それぞれの組み合わせで試した後、一番精度の高かったパラメータの組み合わせを学習モデルとして利用できるようになります。そのため各パラメータの最適値を見つける時に、用います。   前回のモデルはTwo class decision forestで献血の過去のデータから、献血の分類モデルを作成しました。     テストデータのAUCは0.632の結果の結果から改善できるか試していきます。   ハイパーパラメータ最適化 「Tune Hyper Parameter」とは、適当に何個かのパラメータを用意し、それぞれの組み合わせで試した後、一番精度の高かったパラメータの組み合わせを学習モデルとして利用できます。   設定するときは、検索範囲を定義し、無作為に選択された有限数のパラメータを使用するか、定義したパラメータ空間を網羅した検索を行います。   Random sweep(ランダムスイープ)決められた回数で、値の範囲を指定し、ランダムに検索されます。   Grid sweep(グリッドスイープ)このオプションは、指定した値の範囲内のすべてのパラメータの組み合わせで、値を検索します。このオプションでチューニングを開始すると、複数のモデルがこれらのパラメータの組み合わせを使用して訓練されます。   Entire grid(グリッド全体)全ての組み合わせで、検索していきます。このオプションは最も徹底的だと考えられますが、最も時間がかかります。   Random grid(ランダムグリッド)このオプションを選択すると、すべての組み合わせの中から、指定した回数だけ評価を行っていきます。     今回は「Random grid」を利用します。 Maximum number of runs on randomは120に設定しました。実際に120種類の組み合わせで試してみました。各組合せの結果は「Tune Model Hyperparameters」を右クリックし、「Sweep Results」>「Visualize」で確認できます。 …

Azure ML StudioのTune Hyper Parameterのオプション解説 Read More »

Azure ML studio Two class decision forestのパラメータ解説

前回の記事は【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 …

Azure ML studio Two class decision forestのパラメータ解説 Read More »

Azure Machine Learning Studioのモデル作成・デプロイするサービス

Azure Machine Learning Studio(以降AML Studio)というブラウザのGUIベースで分析をし、モデルを作成できるサービスがあります。AML Studioでは入力から機械学習モデルのトレーニングまでの一連の処理、またはWeb APIによる入力データの受付から予測を行う事ができます。その結果を出力する一連の流れをExperimentと呼び、1つの単位として管理します。そしてExperimentに対して画面上からWebサービスを作成することができます。   無料でGuestプランでも、8時間試すことが出来ます。下記のURLに入ると、[my experiments]を選択する事で試す事が出来ます。 https://studio.azureml.net/?selectAccess=true&o=2   先ず、左下にある[NEW]をクリックして、新しいモデル作成して見ましょう。   乳がん予測モデルや売上予測や与信分析など、幅広いモデルのサンプルがあるので、初心者でもモデル作成することが出来るのが、メリットです。 新規でモデルを作成していきます。[Blank Experiment]を選択してください。   入力データ AML StudioはcsvファイルやSQL DatabaseやAzure Blob Storage、DocumentDBなどのAzureのデータストレージを入力に用いる事ができます。 今回は、サンプルデータを利用します。 データセットはサンプルの[Breast cancer data]をドラッグアンドドロップします。   データセットの[①]を右クリックして、[Visualize]を選択します。 683件10項目の乳がんデータになります。検査値から乳がんか予測モデルを作成していく事になります。   サンプルデータセットの配置 画面左 [Data Transformation] → [Sample and Split] → [Split Data] をドラッグアンドドロップし、データモジュールから線を接続します。 [Split Data]のモジュールを選択し、右の設定画面のFraction of rows…に0.7を変更します。 この意味は70%学習・30%テストの二つに分割していく事になります。   モデル作成 AML Studioは様々なモデルがあります。又は、自分でPythonとRを書くことで分析をする事が出来ます。 今回はTwo-Class Decision …

Azure Machine Learning Studioのモデル作成・デプロイするサービス Read More »