覚え書きブログ

読者です 読者をやめる 読者になる 読者になる

Pythonの覚え書き(Scikit-learn, statsmodels編)

データ解析

Python機械学習といえばScikit-learn、時系列予測といえばstatsmodels。まずは、コマンドプロンプトで次のコマンドでscikit-learnをインストールした。

>pip install -U scikit-learn

Downloading/unpacking scikit-learn from https://pypi.python.org/packages/2.7/s/s
cikit-learn/scikit_learn-0.15.2-cp27-none-win_amd64.whl#md5=f40eee218b45a2c3058a
cd60ccfeda0c
Installing collected packages: scikit-learn
  Found existing installation: scikit-learn 0.14.1
    Uninstalling scikit-learn:
      Successfully uninstalled scikit-learn
Successfully installed scikit-learn
Cleaning up...

次にstatsmodelsをインストールした。

>easy_install statsmodels
Searching for statsmodels
Best match: statsmodels 0.5.0
Adding statsmodels 0.5.0 to easy-install.pth file

Using c:\anaconda\lib\site-packages
Processing dependencies for statsmodels
Finished processing dependencies for statsmodels

次にstatsmodelsのARIMAを使ってみる。

import numpy as np
from statsmodels.tsa import arima_model
import matplotlib.pyplot as plt

data=randn(200,1)
data = np.cumsum(data)

results=arima_model.ARIMA(data[:190],order = [4,0,0]).fit()

plt.clf()
plt.plot(data)
plt.plot(results.predict(start=0,end=200))
plt.legend(['data','predicted'])

ランダムに生成した200ステップのデータのうち190ステップまで訓練データとして使ってARIMA(p,d,q)モデルを学習し、全データをテストデータとして予測している。予測結果は次の画像のようになった。
f:id:hirotaka_hachiya:20140926232648p:plain