0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIでデータ分析-データの前処理(20)-欠損処理:グループ単位での代表値代入④

Posted at
  • AIでデータ分析-データの前処理(20)-欠損処理:グループ単位での代表値代入④
  • 用いるデータの紹介
  • AIの活用
  • まとめ

image.png

AIでデータ分析-データの前処理(20)-欠損値処理:グループ単位での代表値代入④

このノートは、データ分析においてAIを使って何ができて何ができないかを検証するために、実際に試した結果をまとめたノートです。

今回はデータの前処理でよく行われるチェックリスト(20)-欠損値処理:グループ単位での代表値代入④ をAIを用いて行ってみたいと思います。

AIを用いることでいかに効率化できるのか、体験していただければと思います。

所要時間は10分ほどとなっています。

それでは、さっそく始めていきましょう!

データの紹介

今回用いる前処理練習用のcsvデータです。

サンプルデータはこちらから、チェックリストはこちらからダウンロードできます。

1行が1訪問を表すデータになっています。

image.png

AIの活用:geminiを活用

20-欠損値処理:グループ単位での代表値代入④

image.png

image.png

まずは欠損値の状況をヒーマップと棒グラフで確認します。

image.png

image.png

欠損値が残っている列、それぞれ約250行ずつ欠損値が発生していることが確認できます。

欠損値の埋め方を考えるにあたり、欠損値のある列のデータ型・分布を確認します。

・"来店手段"列

データ型を確認します。

image.png

データ型はobject型となっています。

分布を確認します。

image.png

徒歩が最も多いようです。
移動手段は距離に応じて決まりやすいと考えられるため、移動手段の欠損値は距離グループ単位で最頻値で埋めることにします。

距離に応じてグループ分けした列を作りたいため、まず距離をグループ分けする境界を探るべく、距離のヒストグラムを作成するようgeminiに依頼します。

結果を確認します。

image.png

ヒストグラムより10キロ以上をひとまとめのグループとし、距離を5つのグループに分けられそうです。

グループ分けの境界を指定し、グループ分けした新しい列を作成するようgeminiに依頼します。

結果を確認します。

image.png

自宅からの距離に応じて距離グループが割り当てられていることが確認できます。

それでは来店手段の欠損値を距離グループ単位の最頻値で埋めるようgeminiに依頼します。

結果を確認します。
image.png

コードと出力された結果を見ると、指定した方法で欠損値が埋められていることが確認できます。

・"購入金額"列

データ型を確認します。
image.png
float64(数値型)であることが確認できました。

箱ひげ図で分布を外れ値の有無を確認します。
image.png

外れ値が含まれていることが確認できます。

1.5IQRを基準に外れ値ではない値と外れ値の分布をそれぞれヒストグラムで確認します。
image.png

統計的に外れ値を示すものの、実際にあり得るデータかエラーの値か判別すべく、外れ値の分布をさらに詳しく確認します。
image.png

もしかしたら実際に168,600円の商品を20人が購入したということもありえますが、データフレームの他の列の値を確認すると
「滞在時間_秒」や「自宅からの距離_km」といった他のカラムでも非常に極端な値を示しています。
これはデータ入力エラーである可能性、あるいは非常に特殊なイベントによるものと考えられそうです。
今回はタスクが欠損値の補完であるため、これらの極端な値が補完に用いる代表値を大きく歪めることを防ぐ必要があります。
そのため「168,600]のように極端な値については、データの入力エラーとみなし、一度欠損値に変換した上で、他の欠損値と同じ方針で補完していきたいと思います。
image.png

また購入金額のヒストグラムから、分布は右に歪んでいることが確認されました。そのため外れ値の影響の少ない中央値を補完する代表値として用いたいと思います。

最後に購入金額は収入や年齢、性別の相関が強いと推察されるため、年収層、年代、性別をグループ単位として、グループ単位ごとの中央値で欠損値を補完するようgeminiに依頼します。
なお、細かい指定の処理でどのくらいの行数に対し欠損補完ができたか確認できるよう、処理ごとの対象となった行数も出力するように依頼してみます。

結果を確認します。

image.png

image.png

コードと出力結果から、"購入金額"の欠損が埋まったことが確認できます。

image.png

これで全ての欠損値の処理が完了できたことが確認できます。

まとめ

今回は前処理練習用のデータに対し、前処理チェックリスト(20)-グループ単位での代表値代入④ をAIを用いてできるか試しました。

結果はAIで代替できることを確認することができました。

AIでできることとできないことを把握し、うまく活用することで、データ分析もかなり効率化できそうですね!

AIでデータ分析-データの前処理(20)-欠損処理:グループ単位での代表値代入④ は以上となります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?