競艇データベースに対する SVM による解析
2005MT060 前川 猛 2006MI154 澤田 英明 2006MI179 竹内 秀樹
指導教員 河野 浩之

1 はじめに3 競艇の過去データにおける分析の提案

近年, データマイニング技術が, 野球の配球のデータ解

3.1 分析までの流れ

析や, 競馬の着順予測で活用されている.

本研究では使用するデータとして登番, 着, レースタイ

しかし競艇のデータ解析ソフトである, Boat Advisor

ム, スタートタイミング, 展示, 艇番, モーター, ボートのの手法・精度が有料ソフトであるが故に不明である [1].

データを使用する.

そこで我々は Kyotei Official Web[2] にある過去 13 年

これらのデータの収集のために Kyotei Official Web分の過去データベースに対して, データマイニングを用いより過去のデータを利用する [2]．Kyotei Official Web

た着順予測を行う.の過去のデータを PostgreSQL に格納する. データを格

まずどのデータマイニング手法を用いるか, サポートベ

納する際, Kyotei Official Web からダウンロードした状

クターマシン (以下 SVM), SVR, SMO, 決定木, k 近傍

態のままだとデータ型が text 型になっている. このまま法の速度・精度の比較検討を行い, その結果, 速度は遅い

ではデータを扱いづらいので, csv 型に変換するためにが精度が非常に高い SVM を採用する.

gawk を利用する. 格納してあるデータベースとデータマ
イニングフリーソフトである Weka とを結合させてデータの解析及び考察を行う.

次に 1996 年から 2005 年までの過去 10 年分のデータを PostgreSQL に格納し, データマイニングツールで解析する. データマイニングツールとして, SVM-light,LibSVM, TinySVM, Weka から, 決定木や EM アルゴリズムと言ったアルゴリズムでも実験可能な Weka を採用する. Weka を用いた実験結果と 2006 年から 2009 年までの結果の着順一致率を比較する.
しかし, 我々の所持する PC ではメモリを最大に使用しても不足していたため, 今回はテスト実験として 2005年のデータを格納し解析を行い, 2006 年のデータと比較して考察を行う.

解析したデータを元に着順予想の一致率を本研究のテーマとする. 本研究における分析の流れをフローチャー(text )gawkcsv(1) PostgreSQL

2 パターン分析による未来予測の実例

(2)
(3)

先行研究として競艇と比較的ルールなどが似ている競Weka

馬の着順予測を紹介する.

 

(4)

競馬では, 決定木によりレースを「荒れないレース/荒れるレース」に分類して, より利益を出すためのシミュ

図1

実装までのフローチャートレーションが行われている. まず始めに, 荒れないレースというのは人気馬が絡んでいるレースのことで, いくつトで表すと図 1 のようになる. 以下が図 1 の解説である.

かの通説として, １番人気の馬の人気が高い時は荒れな(1)gawk を用いて csv ファイルに変換した競艇の過去データを PostgreSQL に格納する.
(2)PostgreSQL のデータを Weka に学習させる.
(3) ユーザーが次に予測したいレースのデータを Wekaに読み込ませる.
(4)Weka を用いて過去のデータから得られた SVM での解析結果をユーザーに表示する.

い, 少頭数のレースは荒れない, 良馬場のレースは荒れない, 牝馬のレースは荒れるといったものなどがある. これらの通説について過去のデータを用いてそれぞれ検証している. この検証により１番人気馬の人気が高い時は荒れないというのが, 最も重要な要因になっていたことが分かった. そしてこの検証を基に決定木により競馬の予測シミュレーションが行なわれている. シミュレーション結3.2 アルゴリズムの選択果として, 回収率 0.8 から 1.4 という安定した結果が得ら

代表的な学習有り未来予測には, サポートベクターマシれていた [3].

ン (以下 SVM), SVR, SMO, 決定木，k 近傍法などがある.

1

表1

アルゴリズムの比較表

SVMSVR

SMO

決定木

k 近傍法

速度×△△

◎△

精度

◎○○×

特徴

データが多ければ精度がかなり高い

大規模な問題を高速に解ける

部分問題を作成し, 逐次最適化を行う

短所

データが多いと最適化が困
難

正則化パラ
メータを適切に決定しなければならない

サンプルが多い場合は時間がかかる

×
多数決で決めるため精度が悪い

規則を人間が見付けやすい

更新の激しい
データには向かない

精度が悪いの識別関数を式 (2) に表す.

それぞれのアルゴリズムの特徴は表 1 にまとめた. 本
研究では速度よりも精度を第一に考えているので, 検証した結果 SVM を利用することとした.

f (x) =3.2.1 SVM の学習方法

dX

wj xj + b(2)j=1

SVM は線形入力素子を利用して２クラスのパターン識別器を構成するアルゴリズムである. 様々なデータは線

ここで wj は線形識別器の重みと呼ばれるパラメータ

形入力素子を通すことで平面上に点として表現される. 構でベクトル表示したもの w を重みベクトルと呼ぶ. また，成された点は平面上で図 2 のようになる. このような線形b はバイアス項と呼ばれるパラメータである. この識別のデータに対してクラス分けを最も誤差の少ない方法に器の f (x) = 0 は超平面となる．SVM では, 訓練サンプより行いより良いデータを得ることができる．SVM はルを完全に識別する超平面の中で最適解を探さなければ線形分離可能であるかどうかでカーネルトリックを使用ならない. 最適解は超平面と訓練サンプルとの最小距離するかを決定する [4][5].

(マージン) を評価関数として用いて, これを最大にするような超平面を選ぶ. これをマージン最大化という. マー
ジン最大化とはクラス分けを行う際に, 最も誤差を少なくする方法のことである. 線形識別面でクラス分けを行う際に, どの位置が最適な解なのかがわからない. そのため, マージンと呼ばれる線形識別面からサンプル点への最近傍までの距離を最適な選択を図 3 のようにしなければならない. 最適な選択を行うためのには式 (2) の条件の元で式 (3) を満たせば良い. これを満たすことが出来ればマージンが最大となる.

識別器は, 識別関数 f (x) の形で表される. 本研究におけるレースタイムなどの要素を識別関数によって識別した場合, x の f が正なら図 2 の四角の集合，f が負なら図2 の丸の集合に識別される．f (x) = 0 を満たす点 x の集合は, 二つのクラスの境界面をなしているが, この面を識別面と呼ぶ. 関数にはパラメータの良さを評価する w を定義しこの値を変えることによって識別面の位置をコントロールできるようになる. 次に, 学習法について触れる.
X2

f(x)=12/|w| = 1/|w| + 1/|w|f(x)=0(3)非線形データに対して SVM は必ずしも良い性能の識別
f(x)=-1X2f(x)=1f(x)=0f(x)>0f(x)<00 f(x)=-1

X11/|w|1/|w|

図2

線形識別面のクラス分け
f(x)>0f(x)<00X1

SVM は線形識別器の一つであり, テストサンプル式 (1)x = (x1 ,・・・, xd )T

図3(1)

2

 

線形識別面のマージン最大化

器を構成できるとは限らないので, 本質的に非線形のデーすることとした. バージョンは日本語対応と文字セットタに対応する方法として, 特徴ベクトルを非線形変換しサポートで SJIS のある PostgreSQL v8.4.1 を利用するて, その空間で線形の識別を行うカーネルトリックがあ[6].

る. この方法を用いることで SVM は線形分離不可能な場

図 4 が競艇に対する ER 図である. 競艇の要素に対す合に対してより良い最適解を得ることが可能である.

るデータ型は全て, text 型で行った.
格納したデータ量は 10 年分のデータでは約 177MB,3.3 ソフトウェアの比較
SVM を扱えるソフトウェアの代表的なものとして，
SVM-light，LibSVM，TinySVM，Weka がある. それぞれのライセンスなどの特徴は表 2 にまとめてある通りである. なお精度は, SVM-light の公式サイトにあるサンプルファイルを元に実験を行った結果である. ここで, 精度も良く, フリーソフトでもあり，SVM 以外のアルゴリズムを扱うことの出来るのは Weka のみである. 本実験
では, 他のアルゴリズムでも Weka を用いて実験を行い,



それぞれの結果からの精度の差などで比較なども行うの    

で Weka で実験を行う.
図4

競艇に対する ER 図

4 競艇データベースを SVM に基づく解析システムの実装

1260584 行, 1 年分のデータでは約 19MB, 300529 行となった.

gawk を用いて対象データを変換

4.1

今回, 解析を行うにあたって必要なデータが 1996 年かWeka と PostgreSQL の結合
Weka と PostgreSQL の結合は PostgreSQL の JDBCWeb にテキストファイルとして掲載され続けている. しドライバと構成ファイルの変更と, データベースの設定
かし, このままでは PostgreSQL に格納出来ないので,ファイルの変更, 環境変数の ClassPath の設定が必要とgawk を使用して変換を行う. そのために以下のプログラなる.
ムを作成し, テキストファイルから必要な部分だけを変換
JDBC ドライバは JAVA とデータベースの接続のためし抜き出し, csv ファイルへの変換が完了し, データベーに必要な API である. Weka は JAVA で動いているたスへの格納が可能となった.
め JDBC ドライバが必要となってくる. PostgreSQL の¶³JDBC ドライバは pgAdmin のスタックビルダを利用す
最適なパラメータの値ることでインストール可能である.
BEGIN {FS = " ";}次に, Weka の構成ファイルの変更である. Weka の構
if($1=="01"||$1=="02"||$1=="03"
成ファイルはRunWeka.ini であるがこれがデフォルト||$1=="04"||$1=="05"||$1=="06"){のままでは, 解析の際に大量のデータを読み込むために使if($10=="0.00.0"||$10=="."){
用メモリが足りないため, 使用メモリを変更し大量のデー
printf("%s,%s,%s,%s,%s,%s,%s,%s,%s,""\n",タを読み込むことを可能にした.
$1,$2,$3,$4,$5,$6,$7,$8,$9 );}4.3

ら現在に至るまで, ほぼ毎日 12 レースが Kyotei Official

else{a = $10;
split(a,b,".");
printf("%s,%s,%s,%s,%s,%s,%s,%s,%s,%d.%d\n",$1,$2,$3,$4,$5,$6,$7,$8,$9,b[1]*60+b[2],b[3]);}
}
}

µ4.2

5 競艇に対する SVM の性能評価
5.1 競艇の解析に対する評価方法
本研究では, データマイニングソフト Weka に実装されているアルゴリズムの 1 つである SVM での解析結果を元に評価を行う.

´

具体的には 2005 年のデータを Weka で学習させ, 2006年の競艇の着順予測を行い, 予測した着順と実際の着順PostgreSQL に csv ファイルを格納の一致率を比較する. 比較した結果から本研究でのシステムが着順の未来予測としての精度を何％出力するかを

本研究では競艇の過去データ (2005 年) をデータベー評価基準とする. また, 他のアルゴリズムとして, EMスに格納しなければならないため PostgreSQL を使用アルゴリズムでの精度と測定速度の比較も評価基準の対3

表2

ソフトウェアの比較表

SVMlight

LibSVM

TinySVM

Weka

MySQL
thorsten-MySQL

MySQL

PostgreSQL

GPL

GNU

GNU×××○

言語

C

C++,JAVA

C++

JAVA

Linux
Windows
精度 (%)○○○○○○○

○

79.87

84.81

84.98

84.98

データベースライセンス

SVM 以外のアルゴリズム

Joachims

1676254s, 2006 年のデータの解析に対して要した時間は1898897s とかなり長い時間を要した.

象とする. なお, 今回の実験をする PC 環境は, CPU がAMD Athlon 64 3500+, システムメモリは 2GB となっている.

5.2

5.4

SVM のパラメータの決定

SVM と EM アルゴリズムとの比較

他のアルゴリズムとの比較として, EM アルゴリズムと SVM とを精度・速度の点から 1 ヶ月分のデータで比パラメータをデフォルトの状態と, cost と gamma の設定を Grid Search という自動で最適なパラメータを設較を行った. EM アルゴリズムを取り入れて行った実験

定するシステムを利用したものとを比較した結果, Grid

では 2006 年の結果との一致率が 20.0926 ％で, SVM とSearch を用いたものの方が 5〜8 ％ほど精度が良かった
ので Grid Search の採用を決定した. cost と gamma は以下のようになった.

比較して極めて低い数値となった. 要因として, 学習デー¶

最適なパラメータの値

X property: classifier.cost
Y property: classifier.gamma
Coordinates: [20.0 , 5.0]µタの量や, パラメータの設定が不十分だったことが考えら³に対し非常に速い結果となった.

れる. 一方, 実験時間は 3929s で, これは SVM の 24638s

6 まとめ´実際に使えるモデルを得るまでには至らなかった. その要
本研究の結果から SVM は精度が 51.9984 ％となり,SVM での未来予測に対する評価因として, データの量や, レースの開催場所などの要素の2005 年と, それを学習させた 2006 年の実験結果は以数が不十分だったことや, Grid Search で求めたパラメー下のようになった.
タよりも良いパラメータの設定の方法があったのではな¶³いか, などが考えられる.
2005 年の解析結果

5.3

Correctly Classified Instances
12682742.920%
Incorrectly Classified Instances
16867357.080%Kappa Statistic
0.42
Total Number of Instances
295500

参考文献[1] “競艇ソフト Boat Advisor,”
http://boat-advisor.com/(accessed 2009.8).
[2] “Kyotei Official Web,”http://www.kyotei.or.jp/(accessed 2009.8).
µ´ [3] 月本洋, “実践データマイニング,” オーム社, pp.27¶³
2006 年の解析結果
187, 1999.
Correctly Classified Instances[4] 森 泉 豊 栄, 中 本 高 道, “鼻 を 使 わ ず 匂 い を 嗅 ぐ,”
18485451.9984%
LANDFALL, Vol.39, pp.20-22, 2000.
Incorrectly Classified Instances[5] 佐々木裕, 磯崎秀樹, 鈴木潤, 国領弘治, 平尾努, 賀170646
48.0015%
沢秀人, 前田英作, “SVM を用いた学習型質問応答
Kappa Statistic
0.51
システム SAIQA-2,” 情報処理学会論文誌, Vol.45,
Total Number of Instances
355500No.2, pp.635-646, 2004.
µ´ [6] “NPO 法人 日本 PostgreSQL ユーザ会,”
2005 年 の デ ー タ を 学 習 さ せ る た め に 要 し た 時 間 は
http://www.postgresql.jp/(accesed 2008.11).

4