- AIでデータ分析-データ前処理(22)-欠損処理:回帰モデルによる欠損補完
- 用いるデータの紹介
- Pythonで実装
- AIの活用:geminiを活用
- まとめ
AIでデータ分析-データ前処理AIでデータ分析-データ前処理(22)-欠損処理:回帰モデルによる欠損補完
今回はデータの前処理でよく行われるチェックリスト(22)-欠損処理:回帰モデルによる欠損補完 をAIを用いて行ってみたいと思います。
AIを用いることでいかに効率化できるのか、体験していただければと思います。
所要時間は10分ほどとなっています。
それでは、さっそく始めていきましょう!
データの紹介
今回用いる前処理練習用のcsvデータです。
サンプルデータはこちらから、チェックリストはこちらからダウンロードできます。
1行が1訪問を表すデータになっています。
Pythonで実装
まずはPythonで実行します。
"世帯年収_万円"列の欠損値を埋めるにあたり、まずは同一顧客IDで欠損を埋められるものから保管していきたいと思います。
データフレームに同じ顧客IDのあるレコードがあるか確認します。
同一顧客IDのレコードが存在し、また来店日時列からレコードが記録された時系列によって同一顧客でも年収に変化が生まれていることが確認されます。
時間軸に合わせて欠損を埋めるため、顧客IDと日付の昇順でソートした後、ffillを使って過去の値から未来に向かって"世帯年収_万円"の欠損を保管します。
ffillでは先頭行の補完ができないため、ffillの後にbfillで未来の値で過去の値の欠損を補完します。
250個あった"世帯年収_万円"の欠損が、同一顧客IDによる補完で98個欠損を埋められたことが確認できます。
残りの152個の欠損値は回帰モデルで予測し、補完します。
結果を確認します。
"世帯年収_万円"列の全ての欠損が補完されたことが確認できます。
ちなみに欠損値補完後の"世帯年収_万円"の平均値と中央値を確認しておきます。
所要時間60分でした。
AIの活用:geminiを活用
今度はAIでやろうとするとどうなるか確認するため、下記のようにgeminiに依頼します。
結果を確認します。
具体的な指定はしなかったため、AIは同一顧客IDで欠損補完をしてからの処理はなく、最初から"世帯年収_万円"列の全ての欠損値を回帰モデルで補完していることが確認できました。欠損値は無事全て補完されています。
また補完後の"世帯年収_万円"の平均値と中央値をみると平均値で約2万円の差で大きな差にはなっていないと言えそうです。
エラー対応も発生し所要時間15分ほどでした。
まとめ
今回は前処理練習用のデータに対し、前処理チェックリスト(22)-欠損処理:回帰モデルによる欠損補完 をAIを用いてできるか試しました。
結果はAIで大枠代替できるものの、精度を求めて細かい処理をしたい場合は欠損処理における経験や知見が求めれることを確認することができました。
AIでできることとできないことを把握し、うまく活用することで、データ分析もかなり効率化できそうですね!
AIでデータ分析-データの前処理(22)-欠損処理:回帰モデルによる欠損補完 は以上となります!


