Azure Machine Learningの回帰分析を使用した例として日経平均株価を予想してみます。
あくまでも回帰分析の例です。
#(基礎情報) 日経平均株価と米ドル/円為替レートの相関関係
これが2002年から2015年9月17日までの日経平均株価と為替レートの2軸グラフです
青が為替レート、緑が日経平均株価
相関関係はそれなりにあることが分かります。
参考情報:日経平均株価と為替レートの相関関係
そのため、どちらかの値がわかれば片方の値もある程度は予測可能なはずです。
今回は米ドル/円為替レートが予めわかってる状態で、日経平均株価がわからないシチュエーションがあったと想定して
米ドル/円為替レートを元に日経平均株価を予想するデータ分析をAzure Machine Learningでやってみます。
Azure Machine Learning で回帰分析
Machine Learning Studio での操作は動画にキャプチャしています。
https://www.youtube.com/watch?v=c1NLhIzAgp8
為替レートと日経平均株価の過去データをCSVにする
まず米ドル為替レートと日経平均株価の過去データを集めてきます。
Googleで検索すればすぐ出てくるのでここでは割愛します。
CSVファイル構成はこうします
USD | 日経平均 | |
---|---|---|
2012/1/12 | 76.92 | 8385.59 |
2012/1/13 | 76.81 | 8500.02 |
2012/1/16 | 76.84 | 8378.36 |
注意点としてネットに落ちているデータCSVはSJISになっている事がおおいのでUTF8に変換しておきましょう。
nkfコマンドの例
nkf -Lu xxxx.csv > xxxx_utf8.csv
Microsoft Azureは素晴らしい事に日付データを認識するのでこの書き方で第一列は日付データと認識してくれます。(AmazonMLには日付型がないため、これはAzureMLのアドバンテージになっている)
Azure Machine Learning にアップロード
Machine Learningにファイルをアップロードします。
回帰分析でモデルを作成
1. 過去データを配置
quote_Lu_Fix_concat.csv(アップロードしたファイル)をパレット上に配置します
Saved Datasets -> My Datasets
右クリック-> dataset -> Visualize でデータは確認できます。
2. 念のためカラム選択パーツを配置
日付のカラム列モデルの演算対象から外す場合もあるので、念のためモデル演算対象のカラムを設定しておきます。
Data Transformation -> Manipulation
演算対象のカラムを選択
3. 予測モデルを配置
Machine Learning -> Train -> Train Model
推測対象のカラム「日経平均」を選択
4. 回帰分析モジュールを配置
5. RUNで予測モデルを作成
右上が**「Finished running」**になったら完了。(今回のデータ量 900行の演算なら15秒ぐらい)
6. 作成したモデルで、過去データを使い日経平均株価予想の検証
Scoreモデルを配置
Machine Learing -> Score -> Score Model
Scoreモデルと過去データファイル連結
RUNを実行し結果をVisualizeで確認
青枠が実際の過去データ
赤枠が作成した予測モデルを使い過去の為替レートから推測した日経平均株価です。
実際の日経平均株価とは100〜300円のズレがありますがそれっぽい数字にはなっています。
Scored Label を右クリックし、comapre to を「日経平均」にすると過去データと予測データの比較散布図が表示できます。
完全に過去データと予測数値が
一致していたら斜めにまっすぐ線がひかれます。
多少ばらつきはあるものの、まっとうな精度の塊と並びになっています。
7. 作成したモデルで、未来、現在の為替データを元に未来の日経平均株価を予想
実際は過去データと比較してもしょうがないので実際の想定ケースである未来日経平均株価を予想してみましょう。
1. 予測ファイルを用意
例えば現在が9月17日の午前で、最終日経平均株価が不明の状況で9月17日と9月18日の為替レートがある程度予測ついている場合、以下のファイルを配置します。(為替レートは1ドル=120.539円とする)
,USD,日経株価
2015/9/17,120.539,0
2015/9/18,120.539,0
注意点としては予測するカラム(今回は日経平均)も列が必要でかつ、データが必要なようなので今回は0を入れています。
予測ファイルをアップロードしておきます。
2. 過去データとScore Modelの接続を解除
3. 予測ファイルをスケッチに配置しScore Modelに接続
4. RUNをして結果を確認
結果をVisualizeで確認
Azureの回帰予想では
9月17日の日経平均株価は19,144.684円
9月18日の日経平均株価は19,144.687円
となりました・・たぶんこんなに高くはないですが。
同じ為替レートなのに数値が違うのは日付もモデル演算対象に入ってるからでしょう。
5. 結果をCSVファイルにダウンロードできるようにする
Score Modelの結果をファイルに保存するために専用のパーツをスケッチに配置します。
Data Format ConversionsからConvert to CSVを選択しScore Modelの下に配置します。
再度RUNし、CSVファイルを作成します。
モデルや対象の予測データに変更がない場合は再計算しないようなので演算時間はすぐ終わります。
演算が終わったらConvert to CSVを右クリックし、Results dataset -> Download で結果をダウンロードできます。
まとめ
若干、実際の日経平均株価とは差はあるもののAzure MLでの現実的な回帰分析のイメージがつかめたと思います。
実際には 米ドル、ウォン、ユーロを使って日経平均株価を予想・・などもっと元データを用意して予測するなどのアプローチになると思います。
素敵なモデルをAzureMLで構築してFX戦争に勝利しましょう。