flaty13
まだデータの確認をしてる段階ですが、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以外をキーにすれば問題なく重複削除できると思います。
Quvotha-nndropout100
有用なご指摘をありがとうございます。
私も train_data.csv と test_data.csv を対象にデータの重複について検証してみました。各ファイルについて
id
以外の列をキーとみなした場合、データの重複は train_data.csv にのみ存在しているようです。3264行が2回ずつ登場していると思われます。以下、検証用のスニペットです。前提ですがスニペットの実行前に
import pandas as pd
し、train_data.csv, test_data.csv をpd.read_csv()
で読み込んだ結果を train, test の変数に格納しています。実行すると train_data.csv, test_data.csv それぞれについて、
id
を除く全ての列をキーとみなした時に重複していると判定された行が rows_duplicated に格納されるはずです。rows_duplicated の中身を確認した結果は以下の通りでした。rows_duplicated['NRows'].describe()
で出力した NROWS の要約統計量は次の通りでした。count 1096.000
mean 2.000
std 0.000
min 2.000
25% 2.000
50% 2.000
75% 2.000
max 2.000