実験結果が公平なものかどうかを確かめる方法の一つとして、テストデータ中に学習データが存在しているかどうかがあると思う。そんな時は、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乗りの適当な日々


最近の記事