アンドロイドは電子金の夢を見るか

アンドロイドは電子金の夢を見るか

アンドロイドは電子金(電子マネー)の夢を見ます
ほそぼそと
プログラムを書いて、為替や株の推移をプログラムに学ばせたい

Amebaでブログを始めよう!
前の記事に引き続き競馬の話です。

今日は特に1番人気のオッズについて、データを見てみます。

データは前回同様、2000年から2012年の障害を除く全レースです。

下の図は、1番人気の馬の単勝オッズをヒストグラムの形であらわしたものです。


アンドロイドは電子金の夢を見るか-競馬:1番人気のオッズヒストグラム

図より、大体1番人気のオッズは2倍~3倍に固まっていることがわかりますね。

では、1番人気のオッズと勝率の関係はどうでしょう。

それを調べたのが下の図になります。


アンドロイドは電子金の夢を見るか-競馬:1番人気のオッズと勝率の関係


予想通りと言いますか、やはりオッズが低ければ低いほど勝率は上がっていますね。
(ただし、そもそも1番人気のオッズが1.1倍を示すレース自体が少ないので、各オッズに対する勝率を計算するときの母数が違うことには注意をしてください。)


眠くなってきたのでこの辺で。

一月ほど前、競馬の裁判の話が話題になりましたね。
http://zasshi.news.yahoo.co.jp/article?a=20121225-00000003-pseven-soci
内容は記事を見て戴ければわかるかと思います。

裁判の内容よりも、被告の作ったプログラムに興味が湧きました。

競馬に必勝法はあるのか?!

プログラムでやるからには、何らかのデータをもとに確率統計、機械学習などで馬券を絞り込んでいたのだと思われます。


そこで、実際にデータを集めて、まずは簡単な統計を取ってみました。
データは2000年から2012年のうち、障害を除く全レースです。

まずは単純に、X番人気の馬が来る確率Pから。



アンドロイドは電子金の夢を見るか-X番人気の勝率

綺麗な曲線を描いて確率が0に収束していっていますね。各年ごとにグラフで表示しましたが、その必要もないくらいにそろっています。
(18番人気の勝率などは、そもそも参戦馬が18頭いないレースは計算に入れておりません。よって、「X頭以上の馬が参戦した場合のX番人気が勝つ確率」が表になります)

つまり、極端な話、12月の段階で1番人気の馬の勝率が20%とかだったら、ずっと1番人気を買い続ければいいということですね。

しかし、下の図からもわかるように、そんな状況はあり得ません。


アンドロイドは電子金の夢を見るか-1番人気が勝つ確率

だいたいどの月も1番人気は30%の確率で勝ちます。
もっと掘り下げていくとどうなるでしょうか・・・

それはまた次回に。

基本的にコーディングはutf-8でするから、
http://ash.jp/code/unitbl21.htm
このページを適当に見て、ちょいと書いてみる

def isHiragana(char):
    if("ぁ" <= char <= "み" or "む" <= char <= "ん"):
        return True
    return False

def isKatakana(char):
    if("ァ" <= char <= "タ" or "ダ" <= char <= "ヶ"):
        return True
    return False

def isAlphabet(char):
    if("A" <= char <= "Z" or "a" <= char <= "z"):
        return True
    return False

def isKanji(char):
    if("一" <= char <= "龻"):
        return True
    return False

一応、少し試した限りでは判別してくれている。

まぁ、まだ動作の保証は出来ない。
xlwtとxlrd、xlutilsの3つをインストールすればいい。

手順
① http://pypi.python.org/pypi/xlwt ←xlutils, xlrd
から tar.gz形式のファイルをダウンロード。
それぞれ解凍する。
.exeのインストーラー形式もあったが、xlutilsとの相性が悪いのでコマンドラインからインストールする。
(xlrdをインストーラーからインストールすると、xutils.copy.copy()でエラーが・・・)

②Windowsのコマンドラインを立ち上げ、解凍したフォルダ(setup.pyのあるフォルダ)へ移動

③コマンドを打つ
>python setup.py install

上記②~③を、それぞれxlwt, xlrd, xlutilsの3回行う。

環境変数にちゃんとpythonが入っていないとコマンドラインからインストールできないので、要確認

③ >python を認識しなかったら、環境変数にpythonを追加。
具体的には、マイコンピュータで右クリック→プロパティ→システムの詳細設定→
詳細設定タブの環境変数ボタンをクリック→システム環境変数リスト内にあるPathを選択して編集→
末尾に ;C:/Python27 (27は、それぞれのpythonのバージョンで)を追加でOK
Qt で久々に嵌ってしまったので覚書

まず、なぜかQtCreatorでの開発で、

QTextCodec c = QTextCodec::codecForName("EUC-JP");

がNULLを返す。もしくはNULLは返さないけどエンコードしてくれない(文字化けする)

そういう時は、main関数に

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
を追加してみればいい