何をするのか
今回は、Azure Machine Learningを使って、自動車の価格予想を機械学習で行います。 自動車の様々な特徴(エンジンの種類、メーカー、ドアの数)から価格を予想することを目指します。
また、この記事は実際に手を動かすことを前提としています。 Azureの説明はしません!さっそく以下のリンクからAzureの登録をしましょう! ちなみに、無料な上に2万分のAzureクレジット(一ヶ月内有効)がもらえます。
※詳細のAzure登録方法が知りたい方はこちらを
Experimentを作成する
※この記事用のworkspaceが一つあるという前提で、進めていきます。
Azure Machine Learningでは基本的に、Experiment上で作業を行います。 Experimentを作成するために、フッターにあるNewボタンをクリックします。
Newボタンをクリックすると、以下の様な画面が現れるので、EXPERIMENTをクリックし、Blank Experimentを選択します。
データをセットする
機械学習を行うためには、データが必要です。 今回は、サンプルデータを使用します。
Azure Machine Learning には、予めサンプルデータセットが容易されているので、それを利用します。 今回は、自動車の値段とその自動車の特徴が含まれているデータセットを利用します。
使用する特徴を選択する
データセットの中には、様々なデータセットがありますが、今回は以下の特徴を選択します。
- price(値段)
- engine-type(エンジンのタイプ)
- make(車のメーカー)
- fuel-type(燃料のタイプ)
- num-of-doors(ドアの数)
- body-style (車の種類)
- engine-location (エンジンの場所)
データセットの特徴を選択するためには、Select Colums in Datasetsを使用します。
Select Colums in Datasetsを設置することができたら、実際にデータセットのカラムを選択します。 設置したSelect Colums in Datasetsをクリックして、Launch column selectorをクリックします。
カラムを選択し、チェックボタンをクリックします。
これで、カラムを選択することができました。 最後に、Automobile price data (Raw)とSelect Colums in Datasetsを繋げましょう。
欠損があるレコードを削除する。
サンプルデータには、欠損があるレコードがあります。欠損があると予測の結果が大きく変わってしまうため、そのデータを削除します。
Clean Missing Dataを利用して、欠損しているデータを削除します。
Clean Missing Dataを配置することができたら、Clean Missing Dataを、Select Colums in Datasetsに繋げましょう。
学習用データ分を確保する
機械学習を行う時は、データセットを学習させる用とテストする用に分けるのが一般的です。 今回は、学習用に70%のデータ・セットを使用します。データセットを分離させるためには、Split Dataを使用します。
Split Dataをクリックして、Fraction of rows in the first output datasetの項目を、0.7に設定します。
Train Modelを配置する
データセットを用意することができたので、実際に機械学習のロジックを構築していきます。 Train Modelを配置して、Split Dataと繋げましょう。 この際、Split Dataの左とTrain Modelの右を繋げます。
機械学習のアルゴリズムを選択する
今回は、住宅価格予測(回帰問題)のため、Linear Regressionを選択します。 Linear Regressionを配置し、Train Modelと繋げます。
次に、予測したいカラムを選択します。住宅価格予測のため、priceを選択します。
これで、学習用のロジックを作成することができました。 予測するためのロジックを用意することができたので、最後に30%のデータセットを使用して、どのくらいそのロジックが正しいが評価してみましょう。
評価用のロジックを実装する
Score Modelを配置して、Train ModelとSplit Dataに繋げます。
これで完成です。Runボタンを押して、評価結果を確認しましょう。
結果を確認する
Score Modelの丸枠をクリックして、Visualizeをクリックします。
すると、評価されたデータを確認できます。 左が実際の価格で、右が予測した価格です。
これで、機械学習の入門をすることができました。
AzureMachineLearningを使用することで、コードを書かずに簡単に機械学習を行うことができます。
また、今回作成した、アルゴリズムを使用して、データさえ用意できれば、自分の回帰問題を解決することができます。
もっと学びたい!
Azure Machine Learningでもっとやってみたいという方は、さわってわかる機械学習 Azure Macine Learning 実践ガイドだったり、Azure Machine Learning のチュートリアルをやってみるのが良いかと思います。
さわってわかる機械学習 Azure Macine Learning 実践ガイド