grepでデータの重複を調べられる
実験結果が公平なものかどうかを確かめる方法の一つとして、テストデータ中に学習データが存在しているかどうかがあると思う。そんな時は、grep
を使えば簡単にデータに重複があるかどうかを確認することができる。
今回は、csvフォーマットで、1行が1つのデータになっていて、1列目がラベル、2列目が実際のデータであるような場合を例にする。
例えば学習データの中身が以下で、
$cat train.csv
1,aaa
-1,bbb
1,abc
テストデータの中身が以下の様な場合、
$cat test.csv
1,aaa
-1,bbc
1,aab
次のようにして重複するデータを出力できる:
$grep -x -f train.csv test.csv
1,aaa
何も出力されなければ、2つのファイルに重複はない。
参考: Linuxで2つのファイルの共通行を出力する - 元RX-7乗りの適当な日々