本記事の目的
いわゆるデータ分析を行うまえの「前処理」に関して、備忘録的なメモです。
当たり前といえば当たり前、ただそれを漏れなく行うことは意外と難しい?
前処理とは
データ分析を機械学習を用いて行う前に、データを整形・編集する必要がある。
その処理のこと。(お料理でいうところの、下ごしらえ)
前処理のポイント
欠損値
- 欠損の埋め方はいくつか方法がある。モデルの出力にも影響するので、慎重に考えること。
- 欠損値がある行を削除するとき、他のcolumnと関連がないかどうか、注意する。例えば、column A, B, Cで欠損値があるとき、AとBでdropna()をすると、Cも欠損が無くなる場合、もある。
異常値
- 表記ゆれ: 「性別」に対し、男、男性、maleと入力
- 定義上ありえないような数値: 「金額」に対し、正ではなく負の値が入力
- 統計上ありえないような数値: 「年齢」に対し、200歳という入力
処理するまえに、できれば第三者(特に、データを提供してくれた人・会社)と確認する。
重複
- 足し合わせるのか、削除がいいのか要確認。
- データの入力時刻がある場合、ミリ秒まで同じであれば「完全な重複」とみなして削除してよいかも。そうでなければ、削除しない方が良いこともある。仕様を確認すること。
前処理について報告しなければいけないこと
- 欠損・異常・重複に対して、なにがしか操作をする場合、その根拠を明示すること。
- 特に、異常値を切るために「閾値」を設ける場合は、データの分布上その閾値が妥当である、とわかるような工夫(例:ヒストグラムで図示)をする必要がある。
- 操作の結果データが変わった(例:データ数が減った)場合は、可能な限り処理の前後の変化を書き残す(件数や、割合の変化)。