データの重複
まだデータの確認をしてる段階ですが、trainデータに重複を見つけたので共有します。(sampleコードはR)
きっかけ
以下のようにgameIDごとのレコード数を確認した際、gameID: 20202116~20202127のレコード数が600前後と非常に多いことに気付きました。1試合あたりの投球数は平均300程度(ドメイン知識)と考えると、ちょうど2倍の値となってるので重複してるのではと思いました。
train %>%
group_by(gameID) %>%
summarise(count = n())
gameID count
<dbl> <int>
1 20202116 600
2 20202117 638
3 20202118 486
4 20202119 580
5 20202121 600
6 20202122 556
7 20202123 592
8 20202124 624
9 20202125 630
10 20202126 608
11 20202127 614
12 20202128 270
13 20202129 304
14 20202130 374
15 20202131 270
16 20202132 313
17 20202133 295
18 20202134 301
19 20202135 254
20 20202136 290
(以下略)
重複データの確認
確認のため、gameID == 20202116 & inning == "1回表"
のレコードを見てみると、1~16と17~32行目でid以外同じデータとなっていることがわかります。ここでは見やすくするため一部のカラムに絞ってますが、他のカラムも同じ値が入ってました。
train %>%
filter(gameID == 20202116 & inning == "1回表") %>%
select(id, totalPitchingCount, pitcher, batter, y)
id totalPitchingCount pitcher batter y
<dbl> <dbl> <chr> <chr> <dbl>
1 16274 1 高橋 光成 中川 圭太 0
2 16275 2 高橋 光成 中川 圭太 0
3 16276 3 高橋 光成 中川 圭太 1
4 16277 4 高橋 光成 中川 圭太 3
5 16278 1 高橋 光成 安達 了一 0
6 16279 2 高橋 光成 安達 了一 1
7 16280 3 高橋 光成 安達 了一 3
8 16281 1 高橋 光成 吉田 正尚 0
9 16282 2 高橋 光成 吉田 正尚 0
10 16283 3 高橋 光成 吉田 正尚 0
11 16284 4 高橋 光成 吉田 正尚 1
12 16285 5 高橋 光成 吉田 正尚 0
13 16286 1 高橋 光成 ジョーンズ 0
14 16287 2 高橋 光成 ジョーンズ 1
15 16288 3 高橋 光成 ジョーンズ 1
16 16289 4 高橋 光成 ジョーンズ 2
17 19538 1 高橋 光成 中川 圭太 0
18 19539 2 高橋 光成 中川 圭太 0
19 19540 3 高橋 光成 中川 圭太 1
20 19541 4 高橋 光成 中川 圭太 3
21 19542 1 高橋 光成 安達 了一 0
22 19543 2 高橋 光成 安達 了一 1
23 19544 3 高橋 光成 安達 了一 3
24 19545 1 高橋 光成 吉田 正尚 0
25 19546 2 高橋 光成 吉田 正尚 0
26 19547 3 高橋 光成 吉田 正尚 0
27 19548 4 高橋 光成 吉田 正尚 1
28 19549 5 高橋 光成 吉田 正尚 0
29 19550 1 高橋 光成 ジョーンズ 0
30 19551 2 高橋 光成 ジョーンズ 1
31 19552 3 高橋 光成 ジョーンズ 1
32 19553 4 高橋 光成 ジョーンズ 2
対処法
Rならdplyrのdistinct関数、pythonならpandasのdrop_duplicates関数あたりを使って素直に重複削除するのがいいと思います。id以外をキーにすれば問題なく重複削除できると思います。