これまで、Pythonを使って簡単なスコアやランキングを作るところまで進んできました。
最初は「コードを書いてみる」という学習でしたが、少しずつ実際のデータを使った分析に近い形になってきています。
現在は、趣味でもあるボートレースのデータを題材にして学習を進めています。
出走表やコース別成績などをもとに、自分が普段予想するときに見ている要素を、Pythonで再現できないか試している形です。
今回の学習では、コース別の成績やスタートタイミングなどを見ながら、条件を変えて分析を続けていました。
例えば、特定のコースでスタートが速い場合の成績を比較したり、着順率の違いを確認したりといった形です。
こうした分析内容も、最初から自分一人で決めていたわけではありません。
「こういう分析をしてみたい」とAIに相談しながら、段階的に学習の進め方を組み立ててきました。
まずは簡単な条件抽出から始め、
次に着順率の計算、
その後に条件を増やす、
というように、少しずつ処理を増やしていく形です。
いきなり完成形を作るのではなく、
小さく作って確認しながら進める流れになっていました。
こうした分析を続けているうちに、少しずつ共通する処理が増えてきました。
・条件を指定する
・該当データを抽出する
・成績を計算する
・結果を比較する
最初はその都度コードを書いていましたが、同じような処理を何度も繰り返すようになってきました。
分析のためのコードが増えてきた
例えば、コース別の成績を見たい場合でも、
・対象コースを指定
・条件付きで抽出
・1着率を計算
・2着率を計算
・3着率を計算
といった流れになります。
別の条件で分析する場合も、基本的には同じ処理を少し変えるだけです。
こうしたコードが増えていくうちに、「分析用の処理」が少しずつまとまってきました。
気づいたときには、単発のコードではなく、分析用のツールのような形になってきていました。
分析からツールに変わってきた
最初は、結果を確認するためにその場でコードを書いていました。
しかし、処理を整理していくことで、同じ分析を何度も実行できるようになってきました。
例えば、
条件を変える
↓
再実行
↓
結果比較
といった流れが簡単にできるようになりました。
このあたりから、「コードを書く」というよりも「分析ツールを使う」感覚に近くなってきました。
すべてスマホで進めている
ここまでの作業は、すべてスマホのPythonistaで行っています。
※スマホでコードを書く環境については、こちらで詳しく書いています。
最初は簡単なコードを書く程度でしたが、条件付きの分析や集計処理もスマホで問題なく動作しています。
・分析条件の変更
・ロジック追加
・結果確認
といった作業も、通勤時間や空き時間で少しずつ進めることができました。
PCを開かなくても、分析ツールのような処理を作れるのは想像以上に便利でした。
次に見えてきたこと
分析を続ける中で、もう一つ気づいたことがあります。
コース条件よりも、選手ごとの違いの方が影響が大きいという点です。
同じ条件でも、選手によって結果がかなり変わります。
このあたりから、コース補正だけでなく、選手別のデータを持たせた方が良いと感じ始めました。
分析を続けていたつもりが、少しずつツールの形になり、さらに次の段階が見えてきました。
このあと、選手別のデータを持たせるために、データベースのような構造を作ることになります。
分析からツール化が進み、さらに予想ロジックの核になる部分に入っていきました。
