• AI

機械学習によるBitcoinの価格変動の回帰分析

ビットコインの一時間毎の時系列データを21日分読み込ます。

import pandas as pd
btc_price = pd.read_csv('coindesk-bpi-USD-close_data-2018-06-07_2018-06-27.csv')
btc_price.head()

先頭の5レコードを確認のため表示

Image from Gyazo

 

今回はの回帰分析では y=aX + b の簡単な関数式で分析します。

(y:目的変数、X:説明変数)

一時間後の価格を予測するためデータを1時間ずらして格納します。

X = btc_price.loc[0:500, ["Close Price"]]
y = btc_price.loc[1:501, ["Close Price"]]

データを計測データと教師データに分けます。

X = btc_price.loc[0:500,["Close Price"]]
y = btc_price.loc[1:501,["Close Price"]]

import numpy as np
X_train  = np.array(X[:400])
X_test   = np.array(X[400:])
y_train  = np.array(y[:400])
y_test   = np.array(y[400:])

今回の機械学習では線形回帰のモデル(LinearRegressionクラス)を使います。

sklearn.linear_model.LinearRegression – scikit-learn 0.19 documentation

from sklearn import linear_model
model = linear_model.LinearRegression()
model.fit(X_train, y_train)

予測を実施します。

print(y_pred)

予測データと実データをグラフ化して確認してみます。

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot(range(0,101), y_test, label='Actual price', color='blue')
plt.plot(range(0,101), y_pred, label='Predicted price', color='red')
plt.xlabel('Hours')
plt.ylabel('Price ($)')
plt.title('Bitcoin Price')
plt.grid(True)
plt.legend(loc = "upper left")
Image from Gyazo

実データ(青線)と予測値(赤線)が同じようなグラフになっているので、予測の精度は高いといえます。

機械学習の精度が高い事は分かりましたが、この程度の予測であれば、統計解析ソフトでも可能です。 「機械学習」という言葉に過大な期待はしてはいけないと感じました。 簡単にお金が儲かる方法を教えてくれる訳ではなさそうです。

Bitcoinデータの提供:テックアカデミー
PAGE TOP