GW明け仕事したくない人にお勧め。Azure ML 1.0 で明日の為替価格を予測。5分でできる。

今日はシアトルにてMS Buildというカンファレンスに来ています。その中で気になったソリューションがいくつかあったのでまとめます。　まず、ML.NETに関してまとめます。機械学習を使って明日の為替価格を予測してみます。これでもう仕事しなくてよくなるかもしれない。　

オフィシャルHPはこちらをご参照ください。
https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet

# .NET開発者のために作られた

.NET開発者用につくられたMachine Learningということで、私のために！？結構.NET開発者はグローバルでいるのでそうでもないか。

# 環境準備
まずはVisual Studioで快適なML.NET開発ができるようにExtentionをダウンロードします。
https://marketplace.visualstudio.com/items?itemName=MLNET.07

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/72a918ff-ad31-8e24-3d96-75da035474c3.png)

新しいコンソールプロジェクトを立ち上げて、追加`Machine Learning`をクリックすると、フローに入ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/26338c5b-8dd3-58be-baf7-e8763347d9a7.png)

# 簡単5ステップ

超がつくほど簡単です。　

1. シナリオの選択
2. データの選択
3. トレーニング
4. 評価
5. コードに追加（起動）

これだけです。

## シナリオを選択

次にどんな用途でMachine Learningを使いたいかのか聞かれます。今日は明日の為替データを予測したいので、Price Predictionを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/3d111950-587e-c62d-a349-1d743a235e13.png)

## データの選択

シナリオの次はデータの選択です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/5480d4a1-0042-7f37-22de-7d4a2e6b80d0.png)

みずほ銀行さんにて2002年4月からCSVデータがありますので、こちらを今日は使ってみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/8e0e0f87-a33f-882e-9c16-bae3a646edd7.png)

今日は明日の米ドルを予測します。なので Column to Predict(Label)をUSDにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/ab433778-886a-9525-aa57-bd05ba653e46.png)

## トレーニング

次はデータをトレーニングします。

一旦10秒トレーニングを選択。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/b7e57f19-0603-f6d9-eb1d-66e1abbe4cf2.png)

## 評価

今回は5つのモデルをトライ（自動）。各モデルを評価した結果一番精度が高いのは LightGbmRegressionとのことです。　LightGmbRegressionって何？と思った人はGoogleをご参照。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/ed2a6245-8b52-cbf4-fcd6-c28030a7ee37.png)

## コードに追加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/ba7aa05f-ab37-15cb-5f81-42a30e0db4e4.png)

# さっそく起動

コードが自動で追加されました。さっそく起動してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/87dfb84a-1ebf-54ed-7d26-a93486d385b9.png)

明日のUSドルはずばり132.9238円！2019年5月8日（水）の平均値は132.9238円!? 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/7dbd8bfc-edae-1055-4d10-060a105daac0.png)

なんか違うと思ったら・・データの順番が違いました・・
ということで仕切りなおしてデータをきれいにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/ff223b62-4b48-3864-8ce6-a3ded8702ea3.png)

ファイルにレファレンスがあるので、このまま再度起動すれば問題ないはず。

ということで、
2019年5月8日（水）の平均値は110.7932円! これ以上なら売り、これ以下なら買い（そんなにシンプルではないですが基本的な考えとして）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/b80fd236-71db-de5c-8821-d9a5bad07835.png)

# 精度をあげる

先ほどは10秒のトレーニングだったところ50秒にしてみました

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/55999a37-a504-c3f3-1130-d6c5068683b8.png)

あれ、ベストモデルが変わった・・　50秒トレーニングした結果ベストモデルはFastTreeRegressionとのことで、こちらもググってみてください。今回は5個のモデルではなく、24個のモデルをテストしたのとこのことで。秒数が多いとより多くのモデルをテストできるようです。（ですよね・・）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/7d9af39a-3e36-09d5-1903-1713b3aca1c1.png)

あまり細かいことは気にせず、新しモデルで再度起動してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241909/0b158ec3-ba55-f236-5d56-7d72d397ed44.png)

ということで
2019年5月8日（水）の平均値は110.699円! これ以上なら売り、これ以下なら買い。

# 最後に

時間があって、本当にもう仕事したくない人は50秒ではなくさらに多くの時間でベストなモデルを探すこと、あとはデータソースを増やすことをお勧めします。あとでホテルに戻ってデータソースの増やし方はまた後程まとめます。あと1時間ぐらいモデルをテストしたいと思います。