Azureチュートリアル:Azure MachineLearningStudioを使用したガス価格の予測
公開: 2022-03-11選択した在庫が来月中に上昇するか下降するかを予測できるとしたらどうでしょうか。 または、お気に入りのサッカーチームが次の試合に勝つか負けるかどうか。 どうすればそのような予測をすることができますか? おそらく、機械学習が答えの一部を提供する可能性があります。 Windows Phone 8.1に付属するBingを搭載した新しいデジタルパーソナルアシスタントであるCortanaは、2014FIFAワールドカップの16試合中15試合を正確に予測しました。
このAzureチュートリアルでは、日常生活で直面する問題の1つを解決することで、AzureMachineLearningの機能を探索します。
機械学習開発者の観点から、問題は2つのグループに分けることができます。標準的な方法を使用して解決できる問題と、標準的な方法を使用して解決できない問題です。 残念ながら、ほとんどの現実の問題は2番目のグループに属しています。 ここで機械学習が役立ちます。 基本的な考え方は、マシンを使用して履歴データ内の意味のあるパターンを見つけ、それを使用して問題を解決することです。
問題
ガス価格は、おそらくほとんどの人民予算にすでに含まれている項目の1つです。 絶え間ない増減は、他の食料品やサービスの価格にも影響を与える可能性があります。 気象条件から政治的決定や管理費、そして自然災害や戦争などの完全に予測不可能な要因まで、ガス価格に影響を与える可能性のある多くの要因があります。
このAzure機械学習チュートリアルの計画は、アクセス可能なデータを調査し、予測モデルを作成するために利用できる相関関係を見つけることです。
Azure Machine Learning Studio
Azure Machine Learning Studioは、データ実験を開発するためのWebベースの統合開発環境(IDE)です。 これは、Azureの他のクラウドサービスと緊密に連携しており、機械学習モデルとサービスの開発とデプロイを簡素化します。
実験の作成
機械学習の例を作成するには、5つの基本的な手順があります。 ガス価格の独自の予測モデルを開発することにより、これらの各ステップを検討します。
データの取得
データの収集は、このプロセスで最も重要なステップの1つです。 データの関連性と明確さは、優れた予測モデルを作成するための基礎です。 Azure Machine Learning Studioには、多数のサンプルデータセットが用意されています。 データセットのもう1つの優れたコレクションは、archive.ics.uci.edu / ml/datasets.htmlにあります。
データを収集したら、簡単なデータアップロードメカニズムを使用してStudioにアップロードする必要があります。
アップロードすると、データをプレビューできます。 次の図は、アップロードしたばかりのデータの一部を示しています。 ここでの目標は、E95というラベルの付いた列の下の価格を予測することです。
次のステップは、左側のパネルから作業領域にモジュールをドラッグアンドドロップして、新しい実験を作成することです。
データの前処理
利用可能なデータの前処理には、利用可能なデータをニーズに合わせて調整することが含まれます。 ここで使用する最初のモジュールは「記述統計」です。 利用可能なデータから統計データを計算します。 「記述統計」モジュールの他に、一般的に使用されるモジュールの1つは「欠落データのクリーンアップ」です。 このステップの目的は、欠落している(null)値を他の値に置き換えるか、完全に削除することによって、それらに意味を与えることです。
機能の定義
チュートリアルのこのステップで適用されるもう1つのモジュールは、「フィルターベースの特徴選択」モジュールです。 このモジュールは、予測したい結果に最も関連するデータセットの機能を決定します。 この場合、下の図でわかるように、「E95」値に最も関連する4つの機能は、「EDG BS」、「Oil」、「USD / HRK」、および「EUR/USD」です。
「EDGBS」は予測に使用できないもう1つの「出力」値であるため、残りの重要な機能から2つだけを選択します。つまり、石油の価格とUSD/HRK列の通貨レートです。
処理後のデータセットのサンプルを以下に示します。
アルゴリズムの選択と適用
次のステップは、「分割」モジュールを使用して使用可能なデータを分割することです。 データの最初の部分(この場合は80%)はモデルのトレーニングに使用され、残りはトレーニングされたモデルのスコアリングに使用されます。

次の手順は、Azureマシン学習プロセス全体で最も重要な手順です。 モジュール「TrainModel」は2つの入力パラメータを受け入れます。 1つは生のトレーニングデータで、もう1つは学習アルゴリズムです。 ここでは、「線形回帰」アルゴリズムを使用します。 「TrainModel」モジュールの出力は、「ScoreModel」モジュールの入力パラメーターの1つです。 もう1つは、利用可能な残りのデータです。 スコアモデルは、データセットに新しい列、スコア付きラベルを追加します。 「スコア付きラベル」列の下の値は、適用された学習アルゴリズムが利用可能なデータでうまく機能する場合、対応するE95値の値に近くなります。
モデルの評価モジュールは、統計値で表されたトレーニング済みモデルの評価を提供します。 「決定係数」を見ると、このモデルを使用して正しい価格を予測する可能性は約80%であると結論付けることができます。
ここで、「ニューラルネットワーク回帰」モジュールを使用してみる価値があります。 新しい「TrainModel」モジュールと「ScoreModel」モジュールを追加し、出力を既存の「EvaluateModel」モジュールに接続する必要があります。
「ニューラルネットワーク回帰」モジュールには、もう少し構成が必要です。 これは実験全体の中で最も重要なモジュールであるため、全体として適切な学習アルゴリズムの設定と選択を調整して実験することに集中する必要があります。
この場合、Evaluateモジュールは、トレーニングされた2つのモデルの比較を提供します。 繰り返しますが、決定係数に基づいて、ニューラルネットワークはわずかに精度の低い予測を提供することがわかります。
この時点で、選択したトレーニング済みモデルを将来の使用のために保存できます。
トレーニング済みのモデルができたら、「スコアリング実験」の作成に進むことができます。 これは、新しい実験を最初から作成するか、Azure MachineLearningStudioヘルパーを使用して行うことができます。 トレーニング済みのモデルを選択し、「スコアリング実験の作成」をクリックするだけです。 ここで必要な新しいモジュールは、「Webサービス入力」と「Webサービス出力」です。 「プロジェクト列」モジュールを追加して、入力値と出力値を選択します。 入力値はOilとUSD/HRKであり、出力は「ScoreModel」出力の「ScoredLabels」列の下の予測値です。
次の図は、これらのいくつかの調整後、およびそれに応じて「Webサービス入力」モジュールと「Webサービス出力」モジュールを接続した後のスコアリング実験を示しています。
この時点で、もう1つの気の利いたヘルパー機能が機能するようになります。 「Webサービスの公開」を使用すると、Azureのクラウドインフラストラクチャでホストされる単純なWebサービスを作成できます。
新しいデータの予測
最後に、簡単なテストフォームを使用して予測Webサービスをテストできます。
結論
この簡単な機械学習チュートリアルを通じて、完全に機能する予測Webサービスを作成する方法を示しました。 Azureプラットフォームに統合されたAzureMachineLearning Studioは、データ実験を作成するための非常に強力なツールになります。 Machine Learning Studioの他に、OrangeやTiberiousなどの他の機械学習ソリューションがあります。 好みの開発環境に関係なく、機械学習を探索して、内部のデータサイエンティストを見つけることをお勧めします。