既存データの価値を高める!データクレンジング(データクリーニング)の重要性とは?

データやAIのビジネス活用を推し進めるにあたって、必ずと言っていいほど必要になるのが、データの品質を高めるためのデータクレンジング(データクリーニング)という作業になります。

ただ、データを用意すれば、すぐにそのデータを活用できるというわけではありません。このデータクレンジングでデータの品質を確保することが、データやAIのビジネス活用プロジェクト成功の鍵になります。

そこで、この記事ではデータクレンジングの重要性とデータクレンジングを行う上でのポイントをご紹介します。

品質の悪いデータはデータ活用プロジェクト失敗の原因となる

データ分析やAIモデルの構築を行っても品質の悪いデータからは品質の悪いアウトプットしか得られません。Garbage In, Garbage Outという言葉があります。統計モデルや機械学習モデルに品質の悪い(信用度の低い)データを入力することは、モデルにとって正常な動作を妨げてしまいます。

しかし、多くのアンケートや帳票、業務システムから得られたデータは日常の業務を遂行するうえでは問題ないですが、データサイエンス視点から見るとかなり低品質であることがほとんどです。よってデータ活用の前に、データ準備としてデータクレンジングを実施し、データの品質を高めることが重要になります。

データクレンジングの中で不適切なデータを見つけた上で、加工もしくは除外するには、データの中身の確認作業(EDA)に加えて、具体的にそのデータが生じた業務の理解、そしてそのデータを活用する業務に対するビジネス知見が必要になります。

ビジネス知見から、そのデータが本来あるべき姿を整理し、活用先の業務を踏まえて異常なデータに対してどのような処置をとるのか決定する必要があるのです。

データサイエンスで使用されるシステムやライブラリは年々進化し、データに対して"よしなに"機能するようになったものが出てきていますが、モデルにデータを入力する前のデータをシステムから取得し利用可能な形に整備する、データ準備の作業は、依然として人が地道に実施する必要があります。

異常なデータが生まれてしまう原因

データクレンジングで必要な観点について考える前に、まずは対応すべき異常なデータがどうして発生してしまうのかについて整理したいと思います。

異常データが生まれてしまう原因

  • システムによる異常データ
    • 更新前のデータ
    • データベースの移行や統合による異常
    • バグによる異常
  • 人による異常データ
    • 入力ミス
    • 表記ゆれ
    • 恣意的な嘘・不正

モデルにとって毒となるデータの異常が発生する原因を大きく分けると、「システムによる異常」と「人による異常」の2つに分類することができます。

システムによる異常データ

まず最も多いのが更新前のデータが残っている場合です。これは間違いではなくシステムの仕様なのでデータベースとしては問題ありません。ある情報を更新した際に、更新前の情報には変更が加えられず履歴として残り、変更後の情報が新たに追加される設計になっている場合、同一の対象を表すレコードが複数存在してしまうということがあります。

例えば、顧客情報のテーブルにある会員Aのメールアドレスを更新するとします。これまで、会員Aの顧客情報を保持していたレコード(記録)そのもののメールアドレスの情報を書き換えれば特に問題はありません。しかし、古いレコードを変更せずに、新しい会員情報を表すレコードを追加した場合、過去の現在とは異なる情報を持ったレコードが残ってしまい、まるでメールアドレスが異なる2人の会員Aが存在するようなデータになってしまいます。

後者の場合でも、そのような処理になっているという仕様がわかっていれば、同じ会員に対して複数のレコードが存在した場合、古いレコードを削除するというクレンジングを行えば正常にデータを使用できます。

しかし、データベースの仕様を考慮せず、データクレンジングを実施しなかった場合このようなケースでもモデルが間違った結果を出してしまう可能性があります。この他にもシステムの仕様によって別途データクレンジングが必要になることがあるので、各種システム設計書やテーブル定義書などの仕様書に目を通しておきましょう。

データの重複は、このようなデータベースの仕様以外でも発生します。システムの改修がありデータベースが統合されたり、移行されていた場合、移行時のトラブルで過去のデータに異常が生じているかもしれません。2つのテーブルが統合された場合、両方のデータベースに存在した同じ顧客に対応するデータが重複してしまうということもありますし、データの移行時に移行ミスが発生し本来あるべきデータが失われるといったこともあります。

さらに、システムのバグによってデータに異常が生じていることがあります。

例えば入力フォームにバグが生じ、入力項目が正しく保存されないといった可能性もあります。全体としては正常に記録されているデータでも、時系列を追って確認してみるとある期間だけ発生したバグによって異常なデータが存在するということもあるので、頻繁に更新されたシステムから出力されたデータは入念に確認しましょう。

人による異常データ

人による異常データの発生理由で最も多いのが、入力ミスによる異常データです。

入力ミスといっても様々なもの、例えば金額といった数値の桁が間違っていることがあります。0を一つ多く入れてしまった、もしくは入れ忘れてしまっただけですが、言葉通り桁違いのデータはモデルの判断を大きく狂わす危険なデータです。

それ以外にも、文字列に関しては誤字や変換ミスなどが必ずありますし、ラジオボタンのような選択式のデータでは隣の項目と間違えて入力されたり、入力漏れがある可能性が考えられます。

入力データによる異常データは種類が多いかつ規則性が見られない異常なのでデータクレンジングで完璧に対処することは難しいです。まずは、このデータがプログラムによって生成されたものなのか、人間によって記入されたものなのか知るところから始めましょう。そして、フォームや端末から入力されたデータである場合は、入力画面などをチェックして誘発される入力ミスがないか確認し、もし明らかに異常データが生じやすい状態が見られた場合は改善する必要があります。

表記ゆれもデータ活用のプロジェクトでは大きな問題です。例えば、「問い合わせ」という内容を記入するとします。するとデータには「問合せ」、「問い合せ」、「問いあわせ」、「問合わせ」・・・と様々なデータが存在します。

人が目検でデータを分析する際には自動的に脳内でこの文字列が表す概念が同じであると処理されますが、モデルにこれらが同じことを意味すると認識させる場合は、ルールベースでこれらが同じ文字列になるように名寄作業を実施するか、文意をとらえることのできる深層学習モデルを使用する必要があります。

また、ユーザーアンケート欄の自由記述に、従業員によって「対応済み」といった業務上に必要な情報が付け加えられていたり、伝票データの製品説明欄に「ご購入ありがとうございました」といった顧客へのメッセージが記入されている場合もあります。これも、既存の業務を実施するだけでは問題にならないのかもしれませんがデータ活用する際には問題となります。

さらに、データには人による恣意的な嘘・不正によって生成されるものもあります。売り上げを操作するためや、損失を隠すために事実とは異なる入力があったり、悪質な場合だとデータベースを改変されている可能性もあります。

このようなデータもモデルのアウトプットを著しく悪化させる原因になりますし、今後このようなデータが生成されないように適切な対処を行う必要な対応を取らなければ不正が繰り返されることになるので、データ活用の観点だけではなく経営的な観点でも重大な問題なのです。

これらの想定される原因をもとに、探索的データ分析(EDA)を行うことでデータの異常を発見します。EDAの具体的な実施事項ですが、数値データは平均値、中央値といった統計量を算出して各項目の値を比較したり、ヒストグラムや箱ひげ図を描画して異常なデータが存在しないか確認します。

文章データは内容をEDAにより掴むのが難しいですが、ワードクラウドを用いて単語レベルでどのような内容が記載されているのか大まかに掴むことができます。また、AITCで開発しているTexAIntelligenceのような、文章解析ソリューションを利用して文章の特徴を掴むこともできます。

isid-ai.jp

また、初めて利用するでデータは、データの特性を感覚的に掴むために、データ一部をのサンプルとしてCSVファイルなどに出力して、Excelなどの表計算ソフトなどので眺めるといったことも有効です。

EDAをサポートするツールなどもありますので、別の記事で詳しく解説できればと思います。

データクレンジングを実施するうえで必要なビジネス知見

上記に挙げたデータの間違いを見つけたら、何らかの対処をする必要があります。それにはデータにまつわる業務から得られるビジネス知見をデータに反映する必要があります。その際に重要なのが「データが生成される過程を知る」ことです。

システムが生成したデータならば、そのシステムはどのような目的に使用されるデータか知る必要があります。データベースはその目的を果たすために必要十分な仕様で設計されているので、データ活用には適さない仕様があるかもしれません。

人が生成したデータならば、いつ、どのような人が、どのような目的で、どのようにして、データが入力されるのか整理しましょう。人間にとってデータ入力は面倒くさい、なるべくやりたくない作業です。ですので、入力者がデータを入力する目的以上の情報を正しく記入することは稀で、多くの場合は自分の業務に利益がないデータは正しく入力されないという想定でデータを向き合う必要があります。

そして、データの使用目的もしっかり整理しておく必要があります。正しくないデータはデータクレンジングによって除去していくとどんどんデータの件数は減っていきます。データの正しさと量はトレードオフの関係にあると言っても過言ではありません。

ですから、データ異常を時には許容することも重要です。例えば、商品の販売履歴を使用する際に、商品種別のみをモデルの分析対象にしたいのならば、販売価格が間違っているレコードも時には使用したほうがいいかもしれません。単にデータを除去するといっても、多くの場合異常なデータは偏って存在しているため、除去すればするほど、データが発生した集団全体の姿が見えづらくなる可能性があります。

データの価値を下げる重大な欠陥をデータクレンジングで取り除くことでデータの価値を高めるのがデータクレンジングの目的です。実際に実社会から収集されたデータは軽微なものを含めると数えきれないほどの欠陥が存在しています。

すべての欠陥に対して細かく対処していきたくなるところですが、程々で諦めるべきだと思っています。

データクレンジングを含むデータ準備には多大な時間がかかりますが、時間をかけるほどアウトプットを出すのに時間がかかります。なにより、データを直接触る分析者の作業時間が浪費されいきます。

ですので、思い切って結果をまず出してしまうことも大切なことだと思います。そのうえで更に結果の質を高める場合はデータクレンジングに立ち返ることも必要かもしれません。





今回はデータクレンジング(データクリーニング)について説明させていただきました。いかがだったでしょうか?

データ活用のプロジェクトに挑戦すると、早く結果を見たいという気持ちに駆られますが、そこはぐっと我慢して、データの品質についてじっくり考える必要があります。そして、期待した結果が得られなかったときに最初に立ち返って見直すべき項目でもあると思います。

データクレンジングはデータ活用を進める中で最も手間がかかる作業かもしれません。さらに、今回紹介した観点でデータを眺めてみると、どんどんデータの矛盾が見つかってしまい少し落ち込んでしまうかもしれません。しかし、データクレンジングを行うことでデータへの理解が深まるので、データ活用プロジェクトを成功させるために最も重要なプロセスであると言えます。

データクレンジングはデータを活かしてデジタルに業務を進めるための、非常にアナログな作業になりますが、まずはお持ちのデータをじっくり眺めるところから始めてみてはいかがでしょうか?

初めてデータ活用に挑戦される方やデータ活用にまつわる課題にお悩みの方は、AITCのデータサイエンティストがご支援いたしますので、お気軽にお問い合わせください。

執筆
AIコンサルティンググループ
徳原光