kharukaのブログ~お金と技術とキャリア~

Edu Fin~金融×教育~若いうちからお金について学ぶってだいじ!学んだテクノロジーはみんなの財産。過去、現在、将来の人生についてのブログ

はじめてのAzure Machine Learning(線形回帰分析)

【手順概要】

1.Machine Learning Studio の開始

2.データを取得

3.データを準備

4.特徴を定義

5.学習アルゴリズムを選択して、適用

6.新しい自動車の価格を予測

【手順】 1.Machine Learning Studio の開始。

以下リンクからMachine Learning Studioにサインイン(サインインしたことがなければサインアップ)します。

studio.azureml.net

2.データを取得します。

2.1.Machine Learning Studio ウィンドウの左ペインにあるEXPERIMENTSを選択します。

2.2.ウィンドウの下部にある [+新規] をクリックして新しい実験を作成し、[EXPERIMENT (実験)] を選択してから [Blank Experiment (空の実験)] を選択します。

f:id:kharuka2016:20170710170805p:plain

f:id:kharuka2016:20170710170821p:plain

2.3.実験には既定の名前が付いており、キャンバスの上部で確認できます。 このテキストを選択し、「自動車価格の予測」などのわかりやすい名前に変更します。 名前は一意でなくてもかまいません。

f:id:kharuka2016:20170710170834p:plain

2.4.自動車価格の予測と入力します。

f:id:kharuka2016:20170710170901p:plain

2.5.実験キャンバスの左側には、データセットとモジュールのパレットがあります。 このパレットの上部にある検索ボックスに「自動車」と入力し、自動車価格データ (未加工) というラベルが付いたデータセットを検索します。 このデータセットを実験キャンバスにドラッグ&ドロップします。

f:id:kharuka2016:20170710170927p:plain

f:id:kharuka2016:20170710171139p:plain

2.6.このデータの中身を確認するには、自動車データセットの下部にある出力ポートをクリックし、 [視覚化]を選択します。

f:id:kharuka2016:20170710171156p:plain

f:id:kharuka2016:20170710171210p:plain

3.データを準備します。

3.1.モジュールのパレットの上部にある検索ボックスに「列の選択」と入力し、データセット内の列の選択モジュールを見つけてから、それを実験キャンバスにドラッグ&ドロップします。 このモジュールを使用すると、モデルに含める、またはモデルから除外するデータの列を選択できます。

f:id:kharuka2016:20170710171230p:plain

f:id:kharuka2016:20170710171247p:plain

3.2.自動車価格データ (未加工) データセットの出力ポートを、データセット内の列の選択モジュールの入力ポートに接続します。

f:id:kharuka2016:20170710171743p:plain

3.3.データセット内の列の選択モジュールを選択し、右側ペインの[プロパティ] ウィンドウの [Launch column selector (列セレクターの起動)] をクリックします。

f:id:kharuka2016:20170710171813p:plain

3.4.左側の [With rules (規則を使用)]します。

f:id:kharuka2016:20170710171827p:plain

3.5.[Begin With (次で始まる)] の [All columns (すべての列)] をクリックします。 これにより、データセット内の列の選択では、(これから除外する列を除き) すべての列がフィルターを通過します。

ドロップダウンから [除外] と列名を選択し、テキスト ボックスの内側をクリックします。 列の一覧が表示されます。 [normalized-losses] を選択すると、テキスト ボックスに追加されます

(右下の) チェック マーク (OK) ボタンをクリックして列セレクターを閉じます。

f:id:kharuka2016:20170710171840p:plain

3.6.モジュールをダブルクリックしてコメントを追加します。 この例では、データセット内の列の選択モジュールをダブルクリックして、「正規化された損失を除外する」というコメントを入力します。

f:id:kharuka2016:20170710172246p:plain

f:id:kharuka2016:20170711115408p:plain

3.7.見つからないデータのクリーンアップ モジュールを実験キャンバスにドラッグして、データセット内の列の選択モジュールに接続します。 [プロパティ] ウィンドウで、[Cleaning mode (クリーニング モード)] の下の [Remove entire row (行全体を削除)] を選択します。 これにより、見つからないデータのクリーンアップでは、見つからない値が含まれる行が削除されてデータがクリーンアップされます。 モジュールをダブルクリックして、「値が見つからない行を削除する」というコメントを入力します。

f:id:kharuka2016:20170710171910p:plain

f:id:kharuka2016:20170710171921p:plain

f:id:kharuka2016:20170710171935p:plain

f:id:kharuka2016:20170710172307p:plain

f:id:kharuka2016:20170710172319p:plain

f:id:kharuka2016:20170711115619p:plain

4.特徴を定義します。

4.1.別のデータセット内の列の選択モジュールを、実験キャンバスにドラッグ&ドロップします。 見つからないデータのクリーンアップ モジュールの左側の出力ポートを、データセット内の列の選択モジュールの入力に接続します。

f:id:kharuka2016:20170711115800p:plain

4.2.モジュールをダブルクリックして、「予測対象の特徴を選択する」と入力します。

f:id:kharuka2016:20170711115942p:plain

4.3.[プロパティ] ウィンドウで、[列セレクターの起動] をクリックします。

4.4.[With rules (規則を使用)]をクリックします。

4.5.[Begin With (次で始まる)] の [No columns (列なし)] をクリックします。 フィルター行で、[Include (含める)] と [column names (列名)] を選択してから、テキスト ボックス中の列名の一覧を選択します。 これによりこのモジュールでは、指定した列を除いて列 (特徴) が渡されなくなります。

f:id:kharuka2016:20170711121159p:plain

4.6.チェック マーク (OK) ボタンをクリックします。

5.学習アルゴリズムを選択して、適用します。

5.1.データの分割モジュールを選択して実験キャンバスにドラッグ&ドロップし、最後のデータセット内の列の選択モジュールに接続します。

f:id:kharuka2016:20170711121317p:plain

5.2.データの分割モジュールをクリックして選択します。 (キャンバス右側の [プロパティ] ウィンドウにある) [Fraction of rows in the first output dataset (最初の出力データセットにおける列の割合)] を探して 0.75 に設定します。 このようにして、データの 75% をモデルのトレーニングに使用し、25% をテスト用に保持しておきます (後で異なる割合を使用して実験できます)。

f:id:kharuka2016:20170711121337p:plain

f:id:kharuka2016:20170711121350p:plain

5.3.実験を実行します。 実験を実行すると、データセット内の列の選択モジュールとデータの分割モジュールによって、次に追加するモジュールに列定義が渡されます。

5.4.学習アルゴリズムを選ぶには、キャンバスの左側にあるモジュールのパレットの [Machine Learning] カテゴリを展開してから、[モデルを初期化] を展開します。 これにより、機械学習アルゴリズムの初期化に使用できるモジュールのカテゴリが複数表示されます。 この実験では、[回帰] カテゴリにある線形回帰モジュールを選択し、実験キャンバスにドラッグ&ドロップします (パレットの検索ボックスで「線形回帰」と入力してモジュールを探すこともできます)。

f:id:kharuka2016:20170711121431p:plain

5.5.モデルのトレーニング モジュールを見つけて、実験にドラッグ&ドロップします。 線形回帰モジュールの出力を、モデルのトレーニング モジュールの左側の入力に接続します。次に、データの分割モジュールのトレーニング データ出力 (左側のポート) を、モデルのトレーニング モジュールの右側の入力に接続します。

f:id:kharuka2016:20170711121627p:plain

5.6.モデルのトレーニング モジュールを選択して、[プロパティ] ウィンドウの [起動列セレクター] をクリックし、[価格] 列を選択します。 これが、作成しているモデルで予測する値です。

f:id:kharuka2016:20170711121713p:plain

5.7.[Available columns (使用できる列)] の一覧から [Selected columns (選択した列)] の一覧に移動させることで、列セレクターの price 列を選択します。

f:id:kharuka2016:20170711121730p:plain

5.8.実験を実行します。

f:id:kharuka2016:20170711121758p:plain

6.新しい自動車の価格を予測します。

6.1.モデルのスコア付けモジュールを探して、実験キャンバスにドラッグ&ドロップします。 モデルのトレーニング モジュールの出力を、モデルのスコア付けの左側の入力ポートに接続します。 データの分割モジュールのテスト データの出力 (右側のポート) をモデルのスコア付けの右側の入力ポートに接続します。

f:id:kharuka2016:20170711121826p:plain

6.2.実験を実行して、モデルのスコア付けモジュールの出力を表示します (モデルのスコア付けの出力ポートをクリックして、[視覚化] を選択します)。 出力に、予測された価格の値と、テスト データから既知の値が表示されます。

f:id:kharuka2016:20170711121849p:plain

f:id:kharuka2016:20170711121908p:plain

6.3.最後に、結果の品質をテストします。 モデルの評価モジュールを選択して実験キャンバスにドラッグし、モデルのスコア付けモジュールの出力を、モデルの評価の左側の入力に接続します。

f:id:kharuka2016:20170711121950p:plain

6.4.実験を実行します。

f:id:kharuka2016:20170711122003p:plain

6.5.モデルの評価モジュールの出力を表示するには、出力ポートをクリックして、[視覚化] を選択します。

f:id:kharuka2016:20170711122016p:plain

さわってわかる機械学習 Azure Macine Learning 実践ガイド

さわってわかる機械学習 Azure Macine Learning 実践ガイド

参考:

クラウドでの Azure Machine Learning の概要

docs.microsoft.com

Machine Learning のチュートリアル: Azure Machine Learning Studio で初めてのデータ サイエンス実験を作成する

docs.microsoft.com