2008/06/12

Monster Television Commercial: Stork

ちなみにMonster.comっていうのはアメリカの求人サイトなので、そこらへんを考慮に入れれば何を伝えたいのか分かりやすいんじゃないかと思います。それにしてもCMとは思えないくらいの綺麗な映像です。製作はFramestore



ついでにもう一つ。


2008/06/07

ランダムフォレスト(Random Forest)法を用いて株価予測を行ってみた。-03


photo by Desktopography

第三回。それでは今回行った手法について概要を説明していきます。

概要

まず株価についてのデータが欲しかったので、pythonで株価をネット上からダウンロードして結合するスクリプトを作成。そしてその時系列データを元に前日のデルタ、ヒゲの長さ、出来高などの実測値、Moving Average,MACD,RSI,Bolinger Band,RW%R...などのテクニカル指標を合わせて70個ほど算出し、CSVデータとして保存します。



CSVデータをOpenOffice.orgで開いた状態。


そのデータセットを元にR上で学習させます。予測させる数値は『翌日の終値-翌日の始値』とします。一応Rのソースを下に載せておきます。


> library("randomForest") #RFパッケージの読み込み
randomForest 4.5-25
Type rfNews() to see new features/changes/bug fixes.
> d <- read.csv("dataset/2502_R.csv", header=T) #CSVデータの読み込み
> dim(d) #次元の確認
[1] 1794 83
> d.learn <- d[1:1500,] #データを学習用と
> d.test <- d[1501:1794,] #テスト用に分割する
> d.rf <- randomForest(Result~., data=d.learn, ntree=300) #RFで学習させる。
> d.pred <- predict(d.rf, newdata=d.learn) #予測。試しに学習用のデータを入力してみる
> cor(d.pred, d.learn$Result) #相関係数を測定
[1] 0.9693442 #正しく分類が行われていることが分かる
> d.pred <- predict(d.rf, newdata=d.test) #テスト用のデータを用いて予測
> cor(d.pred, d.test$Result)
[1] 0.0266478 #ほぼ無相関の値を示す

結果


どうやらきちんと学習が行われているようなのに、未来のデータに対して予測を行わせるとほとんど無相関、つまりランダムの数値を返してしまうようです。この後も目的変数を『5日後の終値-翌日の終値』としたり、さまざまな銘柄に対して学習と予測を行ってみましたが、良くても相関係数が.2くらいで、実際に使えそうなデータはありませんでした。これは「過去の時系列データを元にして株価がどれくらい動くか予測することはかなり困難である」ことを表しています。

ウィーク型の効率的市場仮説によれば、時系列データを元に予測を行うことは不可能であると言っているわけですし*1、このような結果が出たのはある意味当然かもしれません。
でも結局『なんだかんだやっても予測はできない』で終わらせるのは正直微妙なので、ちょっとあるデータを加工して再び解析を行ってみたら、今度はけっこうおもしろい結果が出るようになりました。でももうこれ以上書いてしまうと長くなってくるので、続きは次回。


解析しているUbuntu(8.04 Hardy Haron)のスクリーンショット。使いやすくて綺麗。

*1 ただ本当にそうかと言われれば正直微妙なところです。株価は人間の心理によって動くわけですから、当然非合理的な動きをする部分もあると思います(たとえそれがマクロ的には消えてしまうにしても)。

2008/06/04

Lakai - Fully Flared Intro


Lakai- Fully Flared Intro

Motiongrapherを見ていたらおもしろい動画を発見したので掲載します。最初はただのスケートボードプレーの動画かなぁと思ったら、1分あたりで度肝を抜かれました。なんていうか、無茶苦茶です。

iPhone meets Softbank mobile

この度、ソフトバンクモバイル株式会社は、今年中に日本国内において「iPhone」を発売することにつきまして、アップル社と契約を締結したことを発表いたします。
「iPhone」について | ソフトバンクモバイル株式会社

おお〜!!!!ついに日本でiPhoneが販売されるのか〜!でもまさかソフトバンクとは思わなかった…

正直パケット代とかCMとかどーなるんでしょー?あのお父さんCMで出すんでしょーか?うーん…

2008/06/01

Ubuntu 8.04 (Hardy Heron)にRpyをインストールする。

pythonの上からRを扱いたかったので、RPyをUbuntu 8.04(Hardy Heron)にインストールしようと試みたんですが、どうやらこのまま
$ sudo apt-get install python-rpy
とかでインストールすると、インポートの段階でRPyモジュールが足りないなどのエラーがでるようです。

えーそれじゃあソースからコンパイルするしかないのかなぁ面倒くさいなぁとか思っていろいろ調べてみたら、どうやら8.04だけではなく、Ubuntu全般で起こる問題なようでいろんな人が書き込みを行っていました→(rpy import error at Gusty)。自分の他に躓いた人もいるかもしれないのでメモしておきます。

いろんな方法がありますが、いまのとこ一番楽な解決方法は以下のとおり。

  1. "http://cran.r-project.org/bin/linux/ubuntu/"にアクセス。自分が使っているヴァージョンを選択(自分の場合は"hardy")
  2. "r-base-core_2.7.0-1hardy0_i386.deb"と"python-rpy_1.0.3-1hardy0_i386.deb"の両方をダウンロードしてインストールする(ただし自分の場合AMD64を使っていたので、amd64をインストールしました)。警告がでるかもしれないけど気にしない。
  3. 無事インストールが完了したら、
    $ python
    >>> import rpy
    できちんと動作するか確認する。

本来こんなどーでもいいことで時間が取られるのはあんま好きじゃないんですが、いやぁーとりあえず解決できてよかったよかった。