質問: Azure Machine Learning Studioで機械学習の勉強をしています。 Azure ML Studioにおける操作例で回答していただいた方がよりわかりやすいですが、 機械学習の一般論として回答していただいても十分にありがたいです。 ニューラルネットワーク回帰による予測をしています。 題材は以下リンクの、線形回帰で自動車のスペックから価格を予測するチュートリアルで、アルゴリズムをニューラルネットワークに変更しています。 [https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/create-experiment#step-1-get-data](https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/create-experiment#step-1-get-data "https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/create-experiment#step-1-get-data") アルゴリズムを変えただけだと、テストにおける予測値が全て同じになりました。 値が範囲が大きいため学習が収束しなかったのだと思い、normalizationモジュールのz-scoreで標準化(平均0、分散1)しました。 このとき、予測対象項目の「価格」も標準化しています。 その結果、精度という意味では一定の水準を満たしたものになりましたが、出力値が標準化による小さいスケールのものでした。 実際の価格として妥当な出力値を得るには、予測結果に対し、学習データの平均と標準偏差を使って、標準化の逆の計算をしてスケールを戻すのでしょうか? * 学習データの平均と標準偏差を使って、予測値を加工するのも不自然な気がしているのですが、通常このような場合どうするのか知りたいです。 * 知識が浅いので、途中の考え方がそもそも間違えているかもしれないとも思っています。 * ご回答につきまして、もしAzure ML Studioにおける具体的に使うべきモジュールなどについてもご存知であれば、教えていただけるとありがたいです。
回答: > > 引用テキスト学習データの平均と標準偏差を使って、予測値を加工するのも不自然な気がしているのですが、通常このような場合どうするのか知りたいです。 > > > 学習に用いた変換の逆変換を施すのが一般的です。 数学で座標変換したら、もとに戻すのに逆変換を行うのと同じ理屈です。 正規化だといろいろ混乱するようですが、単位の変換で考えてみるわかりやすいはずです。 長さの単位がメートルだと数字が小さくなるからセンチメートルを使ったら、メートルで見たい時に100分の1するのが自然です。 結果は関係ありません。 それぞれの点としてサンプリングを行っていますが、理論的には分布を予測しています。