サイエンティストとマーケターのはざま

Pythonとか広告とかデータ分析とかとか


AzureのMachine Learningを使う

前回の記事でAzureのアカウント作成について書きました。

 

ukichang.hatenablog.com

 

今回はAzureのMachine Learningを使っていきます。 

ワークスペースを作成する

まずはワークスペースを作成する必要があります。

ダッシュボードの参照からMachine Learning ワークスペースの作成を選びます。

f:id:ukichang:20160221181439p:plain

以下のMachine Learningのページに遷移します。

MLワークスペースを新規作成してください。

f:id:ukichang:20160221182417p:plain

ワークスペース名と新しいストレージアカウント名を入力します。

ワークスペース作成の際は場所による制約があるので、エラーになった場合、利用可能な場所を指定してください。

f:id:ukichang:20160221183820p:plain

ワークスペースが作成されたらStudioで開くを選択します。

StudioではExperimentと呼ばれるユニットでモデルなどを作成していきます。

f:id:ukichang:20160221184240p:plain

Experimentを作成する

Blank Experimentを選択し、新規のexperimentを作成します。

  1. drag item hereとあるので、まずはデータをセットします。データに関してはサンプルがいくつか用意されているので、その中から今回はGerman Credit Card UCI dataset(ドイツのクレジット カード UCI データセット)を利用します。

    このデータセットの行には、信用貸付のための 1,000 人の過去の申請者に関する 20 の変数が含まれています。col1~col20までのの変数は、データセットの特徴ベクトルを表し、各クレジット貸付申請者を識別する特徴を表しています。col21は、申請者の信用リスクを表し、700 人の申請者が低リスクとして、300 人が高リスクとして識別されています。この分類を行うモデルを作成していきます。

  2. モデル作成前にデータセットをトレーニング用とテスト用に分割する必要があります。Data Transformation→Sample and Split→Split Dataを選択し、分割します。Fraction of rows・・・でトレーニング用データ率を指定できるので0.7とします。その他はデフォルトで。
  3. 二項分類となりますので、ロジスティック回帰を使っていくこととします。二項分類やロジスティック回帰については他を参照してください。Machine Learning→Initialize Model→Classfication→Two-Class Logistic Regressionを選択します。設定はデフォルトとします。
  4. Machine Learning→Train→Train Modelを選択し、Launch column selecterで予測したいカラムを選択します。ここではcol21です。
  5. Machine Learning→Score→Score modelを選択し、Train Modelに応じてScoringします。
  6. Machine Learning→Evaluate modelでモデルの精度を検証します。
  7. 配置が完了したら、RUNをクリックしてExperimentを実行します。

f:id:ukichang:20160222011438p:plain

Scoringと評価

Score ModelではTrain Modelに応じたScored Probabilitiesが算出されます。この確率に応じてScored Labelsが付与されます。

f:id:ukichang:20160222011905p:plain

モデルの評価に関してです。ROCは以下のグラフです。

f:id:ukichang:20160222012336p:plain

正答率(Accuracy)が75%でAUCが0.783ですので、そこそこの予測モデルですね。機械学習のモデルの評価については別途まとめたいと思います。

f:id:ukichang:20160222012454p:plain

以上、AzureのMachine Learningを使って、クレジットカードの信用情報の予測モデルを作成しました。

Azure MLではブラウザ上でデータの加工からモデルの選択、評価までを行うことができ、また面倒なコーディングも不要、Webサービスとの連携も用意であることから、様々なアプリケーションサービスへの実装のハードルを下げてくれるかと思います。

参考

機械学習プラットフォーム Azure Machine Learning を使ってみた | プログラミング生放送

手順 2: Machine Learning の実験にデータをアップロードする | Microsoft Azure