背景
友達とPythonで何かしたい!
となり、流行っている機械学習をしてみようとなりました。
このブログでは困ったことや詰まったもの、役立つ情報など書いていけたらなと思っています。
また、素人なので温かく見守ってくれると幸いです。
お互いの状態
- こうせ – 自動購入やスクレイピングでPythonを触ったことあるが、機械学習は全く知らない。
- 友人U – Pythonをほぼ触ったことない。自分が教えてスクレイピングができるようになったくらい。授業でしたC言語を何となく覚えてるみたい。
はじめにしたこと
先ず競艇で作成している人がいないか調べました。
https://qiita.com/Norimax/items/7540ebcb6b07711260e6
この人も同じようなことをしてました。
そしてだいたいの流れをつかんで取り組んでいこう。となりました。
自分たちは二人なので、とりあえずは別々にしていって詰まったらお互い話し合って解決しようということになりました。
とりあえずこの記事は作成しながら書いていくので次の記事では違うこと言っているみたいなこともあり得ると思います。(先に言っておきます。)
エディタを変えた
スクレイピングまではVs cordを使っていましたが、jupyterlabが使いやすそうだったのでこっちに乗り換えてデータ分析していきます。
やってて気づいたけどVScordから開けるわ笑
こりゃありがたい
大体の流れのイメージ
- データ集め
- データ整形
- 機械学習
- テスト
的な感じですかね
データ集めはスクレイピングでやっていきます。
以降は二人とも完全初心者なため試行錯誤しながらやっていく予定です。
データベース作成
スクレイピング
http://www1.mbrace.or.jp/od2/K/dindex.html
こちらのページでダウンロードできるためやっていきます。
データの抜き方は先ほど紹介したQiitaの方のを参考にしつつ自分の希望の形に集めました。
Pandas触ったことなかったので分けわかめ過ぎたけど、リストを作って無理やり作成しました。
リストでやってあげるとわかりやすかったです。
Distでするとようわからんやったですわ
とりあえず2016/01/01~01/31までを抜き取ってみたので先に進んでみます。
大体33000位のデータでした。
これを整形して使います。
データ整形
整形の仕方は以下の動画を参考にしました。
まずいらないデータを消します。
着順にFとかいらないのがあるので消します。
次にレースタイムがないデータがあるので消します。
「.」だけのやつですね
これは大事そうだけどどうしたらいいのかわからないのでとりあえず消そう。うん。
# indexを日付に(int type)
df = df.rename(index=df[“日程”])
これの理由はあとで学習データとテストデータで分ける際にindexで日付毎に区別できるためです。
日程をInt型からDatetime型にしました。
列全体の処理
RTの値が1.52.2みたいに変な形だから整形する
まー簡単に1*60 + 52.2でいいんではなかろうか
こんな風に列全体の処理の仕方は以下の動画で解説がある。
このMap関数くそ便利すぎんか、覚えとこ
df["RT"].map(lambda x: float(x[0])*60 + float(x[2:6]))
これで簡単にできたぞい
こんな感じにしたぞい
今回はここまで
とりあえず今回はここまで
頑張って形にはしてみるので応援よろしくお願いします。
まずは殴り書きみたいな感じで書いています。(備忘録的な)
コードなどのデータもあるので最終的には公開出来たらなと思ってます。
競艇で勝てなくてもこのデータで収益を🙌🙌🙌