見出し画像

データ整形|空欄と「0」の違いを見落とすと何が起きるか

データ整形をしていると、どうしても気になるのが「空欄」の存在です。表の中にポツポツと穴が開いていると、なんだか掃除のやり残しがあるようで、つい何かで埋めたくなってしまいます。

前回の温湿度データの整理中にも湿度の欄にいくつか空欄があったのですが、そこで私は一つの実験をしてみることにしました。「空欄をそのままにしたデータ」と「空欄を『0』で埋めたデータ」の二つを用意して、それぞれを生成AIに分析させてみたのです。

左:空欄に「0」を入れたデータ (2-1と識別)、右:空欄をそのままにしたデータ(2-2と識別)

まずデータ品質への言及が中心だった

それぞれのデータを生成AIのチャットに投げ、100文字程度という厳しい制約をつけて「このデータの傾向を分析して」と依頼しました。要約を強いることで、AIがデータのどこを重要視したかを確かめたかったからです。

ところが、最初に出た結果は予想とは少し違うものでした。 「空欄のまま」のデータも、「0」で埋めたデータも、AIからの回答は「データが汚れているので、まずは内容を確認するように」という、データ整形の不備を促すような内容が中心だったのです。

この時点で分かったのは、AIはまずデータ品質を優先して見るということです。つまり、前処理の状態そのものが分析の入口を決めてしまう、ということでした。

条件を一つ足して見えてきた「差」

そこで次に、「データ整形の視点を除外して」という条件をプロンプトに付け加えて、再度同じ依頼をしてみました。不備の指摘はいいから、無理やりにでも中身の傾向を見てほしい、と指示を変えてみたのです。

すると、ここでようやく二つのデータの間に明確な差が生まれました。

  • 空欄に「0」を入れたデータ: 湿度の「0%」という数値に対して、やはり「異常値がある」というコメントが中心になりました。

  • 空欄をそのままにしたデータ: 「データがない箇所がある」という言及はありつつも、温度と湿度の全体的な傾向(相関)についてのコメントが返ってきました。

生成AIから出力してもらった実際のスクショです。プロンプトの条件追加でコメントに差がでました。

この結果の違いに、私は驚きを感じました。AIは、私が便宜上入れただけの「0」を、文字通り「湿度が0%だった」という極端な事実として、非常に素直に受け取っていたのです。

指示(プロンプト)次第で多少の変化は出ますが、データそのものに「0」という強い意味を持つ数字を入れてしまうことが、AIの分析コメントにこれほど直接的に影響するとは思っていませんでした。

「空欄」という情報が持つ意味

この実験を通じて気づいたのは、データの空欄はただの「無」ではなく、それ自体が「そこにはデータがない」という情報なのだ、ということです。

安易に「0」で埋めることは、事実を整理することではなく、むしろ「異常な事実」を一つ作り出してしまうことになります。AIは提示されたデータに対して非常に忠実です。こちらが「空欄を埋めて綺麗にした」つもりでも、AIからすれば「0%という極端値に焦点が当たったデータ」に見えていたわけです。

一般的な手法と、今回の判断

データ整形の一般的な手法を調べると、空欄を「平均値」や「中央値」で補填するというやり方が出てきます。確かに有効な手法の一つではあるようですが、今回のようにデータ数が少ない場合、1件の欠損でも全体の傾向に与える影響が大きくなります。だからこそ、安易に補填しないという判断も必要だと考えました。

何でもかんでも平均値などで埋めるのが常に良いとは限らない。今回の例では、空欄を「0」とすることの影響が想像以上に大きく、そのままにしておいたほうが結果としてデータの本来の姿をAIに伝えられることが分かりました。

私の次の一歩

今回の件で、データに空欄があるとき、それを「不備」と捉えて反射的に埋めようとするのをやめようと思いました。まずは「この空欄が意味していることは何か」を立ち止まって考える。そして、それを安易に埋めることが分析にどんな影響を与えるのかを確認する。

今回のような条件であれば、私は空欄を補填せずに扱うという判断を取ります。まずはそのまま扱い、必要があれば理由を明示した上で補填します。たとえAIから「汚いデータ」として指摘されたとしても、そこで安易に形を整えるのではなく、プロンプトを工夫しながらありのままのデータと向き合っていきたいです。

AIは提示されたデータをそのまま解釈します。だからこそ、どんな前提でデータを渡すのかは、こちら側の責任だと感じました。AI時代において、前処理は作業ではなく判断です。これが、現時点での私の判断軸です。


📎 過去の記事はこちら

見た目が揃っていても、データは揃っていなかった
Vol.25:データ整形|右寄せは数値とは限らない
https://note.com/toto_automake/n/nc6a02df27c7c


📎 次の記事はこちら

欠損値はどう扱う?データ整形で避けて通れない判断
Vol.27:データ整形|欠損を「除外」と定義するだけで、AIの出力は変わるのか
https://note.com/toto_automake/n/n9465b9451bd7


📎 リアルタイムの学習ログはこちら

Xでは、データ整形や自動化の作業中に出てきた疑問や判断の分岐を、短いメモとして残しています。
記事になる前の思考の断片です。
https://x.com/toto_automake

いいなと思ったら応援しよう!