ビットコインの一時間毎の時系列データを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レコードを確認のため表示
今回はの回帰分析では 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")
実データ(青線)と予測値(赤線)が同じようなグラフになっているので、予測の精度は高いといえます。
機械学習の精度が高い事は分かりましたが、この程度の予測であれば、統計解析ソフトでも可能です。 「機械学習」という言葉に過大な期待はしてはいけないと感じました。 簡単にお金が儲かる方法を教えてくれる訳ではなさそうです。
Bitcoinデータの提供:テックアカデミー






