今回は昨日に引き続きAzure Machine learning(以下Azure ML)を学びます。
Azure MLでは主に3つの方法で機械学習を構築できます。現在はGUIベースで機械学習を構築できるデザイナーを触っています。
前回はサンプルとして提供されている車の価格データから価格を予測するモデルを構築するためにデータの整理を行いました。
Azure MLで機械学習を行う際には使用するデータの欠損をクリーンにする必要があります。
今回は機械学習のパイプラインを構築していきます。
〇機械学習のパイプラインの構築
今回の目的として『自動車の価格』を求めたいため数値を求める回帰を使用します
回帰(regression)は連続したデータから次の新たなデータを予測する機械学習の手法です。
機械学習を行う際に重要なこととしてデータのうちの数パーセントをテスト、数パーセントをトレーニング用のデータとして分ける必要があります。
これはトレーニングの精度にかかわる手順になります。
①データを分割するため[Split Data]を使用します。
②Split Dataを選択し[Fraction of rows the first output datasets]の値を0.7に変更します。
これはデータをどの程度の割合で分割するかの値になります。
0.7に設定することで、70パーセント、30パーセントの割合で元のデータからデータが分けられます。
トレーニングを開始するために機械学習用のノードをパイプラインに配置します。
これは[Machine Learinig Algorithms]にあります。
③[Linear Regression(線形回帰)]ノードをパイプライン上に配置します
④トレーニングを行うモデルと紐づけるために[Train Model]ノードを追加します。
⑤データとLinear Regressionを接続する。
この際[SplitData]は左ポートが7、右ポートがテスト用の3割のデータで出力されます。このため左ポートからの出力データを接続を行います。
[Train Model]ではトレーニングを行い求めたい結果のデータを選択します
⑥列の編集から求めたい値の名前を選択、ここでは[Price(価格)]を選択します。
以上で学習を行うことができるようになりました。
次に学習結果をテストとして分割した3割のデータを使用して評価する処理を行います。 学習結果を評価することはそのモデルの精度に直結し、すなわちAIでの判定制度に直結します。
〇モデルのテストと評価
①[Score Model]ノードを配置し、TrainModelのポートとSplitDataの右出力ポートのデータをつなぎます。
前述のとおりSplitDataの右出力ポートのデータはテスト用に使用される3割のデータになります。
②最後にトレーニングの結果をモデルの評価として表示します。これはEvaluate Modelノードを使用します。
以上でパイプラインの構築が完了しました。
次回コンピュータインスタンシング(仮想マシン)を作成し実際に動かしていきます。