だいたい完成してテスト中

タグ競馬データベース JVData To SQLiteで投稿してきた競馬データベースソフトウェア開発がだいたい完成したので、テストを兼ねてデータ解析する段階に入りました。

JVLinkオブジェクトを操作してJVDataを取得するクラスのことなど、このブログに書いていない話がたくさんあります。私がこのソフトの開発を通じて知り得たことはすべて書こうと思っていて、今でもそうしようと思うのですが、ブログの1投稿で書くには話が大きすぎて書けませんでした。

例えばJVLink操作クラスなのですが、このクラスは、オリジナルのJVData情報とレコードの蓄積クラス、テーブルクラス、データベース操作クラスなどいくつかのクラスのオブジェクトを使っています。JVLink操作クラスの説明をしようとすると、3000行くらいのプログラムを載せて1つ1つのメソッドとプロパティについて説明しないといけません。

説明するにはプログラムを載せて、読者が再現可能なようにしたいのですが、テスト中のプログラムを載せても、そのプログラムはすぐにバージョンアップするし、あまり読者に役に立つとは思えません。そこで、あまり具体的な話ができずにJVLinkで競馬データJVDataを取得する擬似コードと説明のような話を投稿していました。

テストを終えて、マニュアルを整えて、Ver 1.0がリリースできるようになったら、JRA-VAN データラボで公開します。今月か来月中になると思います。JRA-VANの公開規則をちゃんと調べていないのですが、可能ならオープンソースでソフトを公開します。

ユーザーがソースコードを編集できるなら、プログラムを改良してユーザー好みのテーブル設計に変えることもできます。私がいつか競馬に興味がなくなってソフトをアップデートしなくなっても、オープンソースでしかもExcel VBAならユーザーがそれほど手間をかけず修正することもできるはずです。(競馬予想は、私にとって興味がある統計的機械学習や作りたいソフトウェアのテーマの1つです)

データラボのデータベースソフトウェアをいつくか使ってみたのですが、私の環境(Windows 10 / Thinkpad X230)でちゃんと動作するものはなかったんですよね。何かのエラーでフリーズしたり。それで仕方なくJVData To SQLiteをExcel VBAで作り始めて5ヶ月かかりました。

現段階でクラス数14個、トータル5000行のコードなのですが、紆余曲折して10000行以上書いています。文字列結合を&演算子でしていたので実行速度がめちゃ遅かったり、Set object = NothingErase ByteArray()を書いていなかったのでメモリエラーが出たり、SQLの本を読んで勉強したり、JVData仕様書を読み込んだり、色々あって時間かかりました。

さて、これでようやく競馬のデータ解析ができます。RからSQLiteデータベースに接続してテーブルを読み込んで、まずは競馬の全体的な統計を調べようと思います。

Kosuke Maeda / まえだこうすけ

「機械学習で競馬予想して勝てるのか?」をテーマに活動中! QiitaにはR、VBAなどのTipsを投稿しています。