Azure Machine Learning で色のクラスタリング (1)

最近ついに正式版となった Microsoft Azure Machine Learning では、
次に挙げるようなさまざまな種類の機械学習アルゴリズムをクラウドの PaaS として利用できます。

  • Supervised Learning (教師あり学習)
    • Classification (分類)
          非連続値を対象とする場合
          two-class (二値) と multi-class (多値) がある
    • Regression (回帰)
          連続値を対象とする場合
  • Unsupervised Learning (教師なし学習)
    • Clustering (クラスタリング)
    • Recommendation (レコメンデーション)

このほか、GUI ベースでモデリングできることや Web API として迅速に公開できることなども特徴です。

 

以下では Microsoft Azure Machine Learning を利用して、色のデータをクラスタリングしてみます。
今回は、色相を基準にクラスタリングして、その結果をストレージに出力することにします。

まず、次のコンソール アプリケーションにより、System.Drawing.Color で定義されている色のデータセットを作成します。

これを実行して、140 件の色のデータ ファイル (ColorData.csv) ができました。
(Cyan と Aqua はともに #00FFFF、Magenta と Fuchsia はともに #FF00FF で同じ色です。)

image

 

では次に、Azure の管理ポータルで、Machine Learning のワークスペースを作成します。

image

作成が完了したら、ワークスペースを選択して [Studio で開く] をクリックします。
これで、Machine Learning Studio が新しいタブで開きます。

image

 

ここからは Machine Learning Studio での操作です。

Experiment を作成する前にまず、データセットをアップロードしておきましょう。
先ほどの CSV ファイルを選択します。
アップロードすると、自動的にストレージにコンテナーが作成され、そこにファイルが保存されます。

image

次に、本題の [Blank Experiment] を作成します。
(なお、多くのサンプルが用意されているので、いろいろ試してみると理解につながるでしょう。)

image

 

この Experiment でモデリングや実行ができます。
まず、[Saved Datasets] から [ColorData.csv] を選べるようになっているので、
これを中央のスペースにドラッグ アンド ドロップします。

image

 

残りのモジュールもドラッグ アンド ドロップで配置していきます。とりあえずは、次のように配置します。
各モジュールには ○ の部分があり、上側は入力、下側は出力を表しています。
それぞれを矢印で結ぶには、○ の部分を始点から終点までドラッグします。

image

クラスタリングで選べるアルゴリズムは [K-Means Clustering] (k 平均法) のみです。
プロパティの [Number of Centroids] はクラスターの数を表します。
この値は実行時に決まるわけではなく、あらかじめ指定されなければなりません。
今回は 10 に設定しておきます。

image

[Execute R Script] では、次のスクリプトを指定します。
元の色データでは、Saturation (彩度) が 0 の色の Hue (色相) が 0 になってしまっているため、
赤とグレースケールが混同してしまいます。
そこで、グレースケールの Hue を便宜的に -60 に補正します。

[Train Clustering Model] では、クラスタリングに用いるための特徴を指定する必要があります。
[Launch column selector] をクリックします。

image

今回は、とりあえず色相のみで判定させることにします。Hue のみを選択します。

image

ここでいったん、[Run] をクリックして Experiment を実行します。
実行が完了すると、緑色のチェック マークが付きます。
これで、クラスタリング モデルの学習までできました。

image

 

結果を出力するため、モジュールを 2 つ追加します。

image

[Project Columns] では、最終的に出力する列を絞ります。
Assignments 列に、実行結果のクラスターの番号が入ります。
なお、先ほどの時点で Experiment を実行しておかないと、列名の候補が自動で出てきません。
こまめに実行しながらモデリングを進めるとよいでしょう。

image

 

ここで、いったん Azure 管理ポータルに戻り、結果データの出力先となるコンテナーをストレージに作成しておきます。

image

[Writer] に出力先の情報を設定します。
アカウント情報は、ストレージのダッシュボードの [アクセスキーの管理] から取得できます。

image

 

これで一通り完成したので実行します。
完了すると、コンテナーに結果データ (CSV) が保存されます。

image

なお、実行が完了している場合、
各モジュールの出力 (下側の ○ の部分) を右クリックするとコンテキスト メニューが有効になります。

image

[Visualize] を選択すると、出力結果を表やグラフで見ることができます。

image

 

次回は、出力結果の色データの視覚化と、学習済みクラスタリング モデルの利用についてです。

次回: Azure Machine Learning で色のクラスタリング (2)

作成したサンプル
Clustering Colors 1: by Hue (Azure ML Gallery)
AzureMLSample (GitHub)

参照
Microsoft Azure Machine Learning Gallery
Machine Learning Studio とは
How to choose an algorithm in Azure Machine Learning

コメント / トラックバック2件 to “Azure Machine Learning で色のクラスタリング (1)”

  1. Azure Machine Learning で色のクラスタリング (2) | Do Design Space Says:

    […] Azure Machine Learning で色のクラスタリング (1) では、 […]

  2. クラスタリングを実装する (C#) | Do Design Space Says:

    […] Azure Machine Learning で色のクラスタリングを投稿しましたが、 このときはクラウド サービスである Azure Machine Learning […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。