17
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

素人が競艇AIを作ってみる (0) はじめに

Last updated at Posted at 2021-03-30

挨拶

データサイエンスや機械学習を誰でも手軽に学べる時代になった今、それらを駆使して何かしたいと思う人は多いんじゃないでしょうか?
僕もそのうちのひとりで、1年ほど前にこの競艇AIプロジェクトを思いついて以来、開発に没頭してきました。

「AIでギャンブルを攻略する」という発想は新しいものではなく、SNSなどをみる限りでは既に多くのプレーヤーが存在しております。
こうした"Gamble AIer"と呼ばれる人達は日々増えている一方で、本当に上手くいっている(稼いでいる)のは、トップのほんの一握りなんじゃないかなと思います。
(勿論見えているものだけが全てではないですが)

この記事では、それほどまでに難しい壁に対して、素人の知識でどこまで対抗できるかをお伝えできればと思います。
下記のような方達に読んでいただければ嬉しいです。

  • データサイエンスとかpython触れたことあるけど、イマイチ使い道が見えない方
  • 競艇が好きな方
  • 実務経験豊富のバリバリのDS、その界隈の方 (温かい目で)

データサイエンスの知見がない方にも、できるだけ楽しんでもらえるように書く予定です。
ちなみに僕はと言うとpythonを少し書けるくらいの全くの素人で、何分にも未熟者ですので、優しく見守っていただけると嬉しいです。
それでは、どうぞよろしくお願いします。


なぜ競艇なのか?

公営競技には、競馬・競輪・競艇・オートレースといったものがあります。
その中で、僕が競艇を選んだのは以下の3つの理由があります。

1. 的中しやすい

各競技の最大出走数は、競馬は18頭、競輪は9人、オートレースは8車、競艇は6艇です。当然、出走数の少ない競艇が出目の場合の数は最小となり、的中する確率は最大となります。
加えて競艇の大きな特徴として、インコースが超有利という点があります。全レースのうち、なんと半分は1コースの艇が1着になります。
つまり、他競技に比べ圧倒的に当てやすいのが競艇の魅力なんです。

2. レース数が多い

公営競技は特定の期間で開催されていることが多いですが、競艇においては毎日、全国の各会場で開催されていることから、レース数が必然的に多くなります。
これはつまりデータ数が多いことを意味し、「データ数が命」と言われているこの業界では大変嬉しいことです。

もう少し詳しく説明すると、競艇は全国に24箇所の会場があり、平均的に毎日12会場でレースが開催されております。
1つの会場で1日あたりの12レースまであるため、年間の総レース数をざっくり計算すると
年間レース数 = 12R × 12会場 × 365日 = 52560レース
となり、実際の数も丁度それくらいになります。
2019年にJRA (日本中央競馬会) が開催したレース数は約3300回だったのと比較すると、かなり多いことが分かりますね。

3. 売上が大きい & 成長性が高い

競艇は、競馬に次ぐ大きな売上を誇っております。
直近3年間の売上をみてみると、競艇市場がとても大きく、近年にかけてどんどん成長してきていることが分かります。
ネット投票の普及や、タレントを起用したCMによる若い層への効果的なマーケティングが大きく起因しているのではないかと思います。

年度 売上 前年比
2018 1兆3236億5751万5600円 +9.7%
2019 1兆5342億1092万3600円 +15.9%
2020 1兆9014億8760万2100円 +23.9%

市場が大きいということは、スケーラビリティがあるということです。
つまり、モデルがある程度安定したものであれば、利率が低くても十分に利益を見込めるということになります。
ちなみに、競艇業界の近年の目覚ましい成長の理由については、こちらの記事で考察されてました。

上記の3つの理由から、競艇はAIの攻略対象に向いているかと考えられます。
では、早速競艇AIを作っていきましょう。


大まかな流れ

今回のプロジェクトに関わらず、機械学習プロジェクトでは大きく以下のような工程が生じます。(超ざっくり)

  • ハード面
  1. データを取得する / 加工する
  2. モデルを学習させる / 評価する
  3. システムに落とし込み、自動化する
  • ソフト面
    1. 対象分野のことをよく知る (ドメイン知識の獲得)
    2. 問いを設定する (タスク設計)

ハード面は勉強すれば何とかなるのですが、ソフト面はデータサイエンティストの勘所に関わるところでもあり、実務経験による差が大きく出るのではないかと思われます。

スキルセット

現状、自分が持っているスキルはこんな感じです。

  • pythonを読める・書ける
  • データ分析でよく使われる基本的なライブラリを使える

    pandas / numpy / matplotlib / sckit-learn / keras
  • わからないことはググればなんとなくそれっぽい答えには行き着ける

    stackoverflow / qiita / teratailなど

逆に、下記のようなスキルは現状持ち合わせていません。今後もし必要になれば、その際に勉強しようと思います。

  • DBやパイプライン設計、その他クラウドやインフラまわりの知識
  • 論文の読解力・実装力

そんなわけで前置きが長くなってしまいましたが、次回からは早速、競艇AIの実装に入っていきたいと思います。
楽しんでもらえると幸いです。

次の記事

素人が競艇AIを作ってみる (1) データの取得

17
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?