ビッグ データ アーキテクトが知っておくべきシリーズ: データ品質とデータ クリーニング

著者: 禅とコンピュータープログラミングの芸術

1 はじめに

概要

この記事では、データ品質とデータ クリーニングについて次の側面から紹介し、詳しく説明します。

  1. データ収集の目的
  2. データ品質保証の重要性
  3. データクリーニングプロセス
  4. データクリーニングツールとその特徴の紹介
  5. 事例分析 - ユーザーポートレートデータのクリーニング

データ収集の目的

データを収集する目的は通常、予期していなかった事柄を発見したり、より適切な意思決定をサポートしたりするのに役立つ貴重な情報を生成することです。したがって、データ収集プロセス中に、データの品質が要件を満たしていることを確認するために、データの整合性、正確性、信頼性などの要素を検証する必要があります。では、効果的な方法でデータ品質を確保するにはどうすればよいでしょうか? これには、データ収集の目的、データ収集方法、データ品質管理手段、データ品質監視メカニズムなど、データ品質保証に関連する知識が必要です。

データ品質保証の重要性

データ品質保証(データ品質保証)はデータセキュリティ管理の重要な部分であり、主にデータ品質の維持、データ品質レベルの向上、データの破損、漏洩、改ざんの防止に焦点を当てています。データ品質保証は、静的品質保証と動的品質保証の 2 つのレベルに分類できます。静的品質保証とは、データが保存されるときに十分に保証されており、データに変更が加えられていないことを意味し、そのようなデータ品質は不変です。動的品質保証とは、データのライフサイクルに従ってデータ品質の高効率と信頼性を確保し、データの正確性、完全性、一貫性、適時性を保証することを指します。データ品質保証の重要性は、主に次の 3 つの側面に反映されます。

  • データのセキュリティを保護する: データ品質保証により、違法な侵害、悪用、漏洩、改ざん、その他のセキュリティ リスクからデータを保護できます。個人情報、顧客情報、商品データ等
  • データ価値の向上: データ品質保証は、企業が実際の効果的な情報を収集し、効果的なデータ分析を通じてデータを使用して新しい価値を生み出すのに役立ちます。
  • ビジネス開発の促進: データ品質保証により、迅速なビジネス開発を促進し、持続可能な成長を達成できます。

データクリーニングプロセス

データ クリーニングとは、データ使用のニーズと品質基準を満たすために元のデータを処理、変換、フィルタリングすることを指します。データクリーニングは、構造化データ、半構造化データ、非構造化データなど、さまざまな観点から行うことができます。データクリーニング作業は、さまざまな段階に応じて実行することもできます。データ クリーニングの一般的なプロセスは次のとおりです。

  1. データ収集: ビジネス システム、サードパーティ インターフェイス データ、ログ ファイルなどを含みます。
  2. データ送信:ネットワーク環境やハードウェアデバイスの性能制限などの要因により、データ送信がスムーズでない場合があり、データ送信が要件を満たさないことがよくあります。
  3. データの保存: データが送信および保存された後、情報の損失、エラー、欠落、重複などの問題が発生し、データ品質が低下する可能性があります。
  4. データ品質の検証: 定期的なデータ検証に加えて、データ クリーニングではデータ品質を評価するための指標をさらに導入する必要があります。一意の識別子の一致率、重複レコード率、値の範囲など。
  5. データ クリーニング: データ クリーニングの目的は、元のデータに対して必要な変換、フィルタリング、削除などを実行して、データのエラーや異常を削除または修正し、データの品質が要件を満たしていることを確認することです。
  6. データ統合: データ クリーニング後、その後のデータ処理や分析に使用する前に、データを再統合する必要がある場合があります。

データクリーニングツールとその特徴の紹介

データ クリーニングとは、元のデータを処理、変換、フィルタリングして、データ使用のニーズと品質基準を満たすようにすることを指します。データ クリーニング ツールは、次の表に示すように、さまざまなアプリケーション シナリオに応じてデータ クリーニング用にさまざまなツールを選択できます。

ツール名 該当シーン 特徴
SQL Server 統合サービス (SSIS) 構造化データのクリーニング カスタマイズ可能で強力
アパッチハイブ 構造化データのクリーニング 高速で大量のデータの処理に適しています
Hadoop MapReduce 分散データのクリーニング 使いやすく拡張性が高い
Talend オープンスタジオ 半構造化/非構造化データのクリーニング ビジュアルインターフェイス、充実した機能
データ ラングラー Webデータのクリーニング 使い方は簡単、単一機能

事例分析 - ユーザーポートレートデータのクリーニング

ユーザーポートレートデータのご紹介

「ユーザープロファイリング」とは、大量のユーザーの履歴記録、消費習慣、好み、嗜好傾向などの情報を分析し、特定のコンピューティングモデルを通じて大量のユーザーデータを各ユーザーのラベルや特性にマッピングするプロセスです。ユーザーのポートレートは、精密マーケティング、広告、トラフィックの最適化、階層的な推奨事項、リアルタイムのリスク管理、デフォルトの警告などに使用でき、組織の有効性を向上させ、ビジネス変革の効率を高めることができます。

一般的なインターネット企業の場合、ユーザーポートレートは「ユーザーポートレートエンジニア」によってクリーニングされるのが一般的です。

たとえば、一般的に、ユーザーのポートレート データは、「構造化」データと「非構造化」データの 2 つのタイプに分類されます。構造化データとは、ユーザーの名前、年齢、住所、職業など、明確に定義された特定の構造を指しますが、非構造化データは、ユーザーの閲覧、検索傾向、コメント、いいねしたコンテンツなど、比較的複雑です。

構造化データの場合、データ クリーニングには通常、SQL Server Integration Services (SSIS) や Apache Hive などのツールが使用されます。その主なタスクは、各フィールドのデータ型と有効性をチェックして修正すること、無効なデータを削除すること、重複データを削除すること、異常なデータをクリーンアップすること、タイムスタンプを日付形式に変換することなどです。

非構造化データの場合、データクリーニングには一般にTalend Open StudioやData Wranglerなどのツールが使用されます。その主なタスクは、さまざまなソースからのデータを要約、結合、分類、ラベル付け、重複排除、関連付けなどを行って、標準化された使いやすいユーザー ポートレート データを形成することです。その中でも、関連付け、重複排除、ラベル付けは非常に重要です。

例: ユーザー プロファイル データのクリーニング

ミッションの詳細

大規模な電子商取引 Web サイトには非常に大量のデータがあり、毎日大量のユーザー データが生成されます。その中でも、ユーザーのポートレートデータは比較的乱雑で不規則なため、整理する必要があります。具体的な要件は次のとおりです。

  • これらの値が null のユーザーが本当に職業情報を必要としないのかどうかを区別できないため、職業が null のレコードをすべて削除します。
  • その後の分析を容易にするために、メールボックス内の番号を @ 記号に置き換えます。
  • 性別はMが男性、Fが女性、Uが不明ですが、その他の場合は元の値のままとなります。
  • 120 年を超える古いレコードは、一律に 120 年以上とマークされます。
  • 2019 年 7 月より前に登録された 18 歳未満の人の記録は消去されます。
  • 国と地域に応じてユーザーの位置をマークし、州および市区町村レベルの情報を削除します。
  • プライバシーを保護するために、携帯電話番号の中央の 4 桁をアスタリスク (*) に置き換えてください。
  • 興味・関心、消費習慣などのデータに基づいてユーザーのポートレートを設定し、「グルメ」「旅行が趣味」「ネット有名人」など、きめ細かいユーザーのラベリングを実施します。
  • 商品の購入、検索、収集などのデータを相関分析し、ユーザーがどのような商品、ブランド、スタイルを好むのかなどを分析します。
  • さまざまな分野のユーザー数をカウントするレポートを作成し、関係者に事前に公開します。
解決
SSIS データ クリーニング

まず、SSIS を使用してユーザーのポートレート データをインポートし、次にデータを処理するための複数のクリーニング ルールを設定します。

  1. 職業が空のレコードをすべて削除する: 職業が空のユーザーは職業情報が本当に必要ないかどうかを区別できないため、ここでレコードを直接削除できます。フィルター関数を使用して、職業フィールドの値が空かどうかに基づいてレコードを削除するかどうかを決定します。

SSIS 開発言語に精通している場合は、対応するスクリプトを直接記述し、SSIS 組み込み式関数でこのスクリプトを呼び出すこともできます。

  1. メールボックス内の数字を @ 記号に置き換えます: メールボックスには標準化されていない数値形式のユーザー名が含まれているため、@ 記号に置き換える必要があります。スクリプト機能を使用すると、フィールド間で任意の文字列操作を実行できます。
  1. 性別では、M は男性、F は女性、U は不明を表します。性別フィールドには、M、m、男性、男性などの形式がある場合があります。ここでは、スクリプト関数を使用してさまざまな形式を統一できます。
  1. 120 歳を超える年齢を持つレコードを一律に 120 歳以上としてマークする: ここで、IF 条件ステートメントを使用して、年齢フィールドの値が 120 歳を超えているかどうかを判断できます。120 歳を超えている場合は、年齢の値を 120 歳に設定します。
  1. 18 歳未満で、2019 年 7 月より前に登録されたレコードを消去します。 ここでは、式を使用して登録時刻と現在の日付との時差を計算し、年齢に基づいてフィルターをかけることができます。
  1. 国と地域に従ってユーザーの位置をマークし、州および市区町村レベルの情報を削除します。この種の情報は IP アドレスから抽出できますが、IP アドレスは暗号化されている場合があるため、この方法をここで直接使用することはできません。都市の位置データベースに基づいて地理位置情報タグを検討することをお勧めします。
  1. プライバシーを保護するために、携帯電話番号の中央の 4 桁をアスタリスク (*) に置き換えます。携帯電話番号の最後の 4 桁のみを表示することが最善ですが、実際の個人情報を公開したくない場合は、アスタリスクに置き換えてください。
  1. 興味、趣味、消費習慣などのデータに基づいてユーザーのポートレートを確立し、ユーザーのきめ細かいラベル付けを実行します。このタイプのラベルでは、オブザーバー モードを使用してユーザーの履歴、検索、いいね、閲覧、その他の行動をモデル化できます。を選択し、別のラベルを生成します。ここではこれ以上の例はありません。

  2. 商品の購入、検索、収集などのデータに対して相関分析を実施し、ユーザーがどのような商品、ブランド、スタイルを好むのかなどを分析します。この種の相関分析は機械学習手法を使用してモデル化できますが、データ量が膨大であるため、多くの個人データが含まれるため、当面はここでは例を示しません。

  3. 各フィールドのユーザー数をカウントするレポートを生成する: 上記の手順を通じて、ユーザーのポートレート データをクリーンアップしたので、各フィールドのユーザー数をカウントするレポートを生成できます。

通过结果,我们可以发现,原有用户画像数据中有些用户的性别、职业信息都已清洗完毕,手机号码替换成了星号,邮箱中用户名使用了@符号。而新生成的用户画像数据,则可以对用户的消费习惯、兴趣爱好等进行详细的分析。
Apache Hive データのクリーニング

ユーザーのポートレート データの場合、通常は Apache Hive がデータ ウェアハウスとして使用されます。Hive は豊富な SQL クエリ機能を提供し、データ クリーニング作業を簡単に完了できます。

  1. 職業値が NULL のすべてのレコードを削除する: SELECT または DELETE ステートメントを使用して削除を完了することもできます。

    DELETE FROM user_profile WHERE job = '';
  2. メールボックス内の数字を @ 記号に置き換えます。SCRIPT または TRANSFORM コマンドと Python スクリプトを組み合わせて使用​​して、置換を完了することもできます。

  3. 性別では、M は男性、F は女性、U は不明を表します。置換を完了するには、CASE WHEN...THEN...END または UDF 関数も使用します。

  4. 120 年以上古いレコードを統合し、120 年以上古いものとしてマークします。また、CASE WHEN...THEN...END または UDF 関数を使用してマーク付けを完了します。

  5. 18 歳未満で、2019 年 7 月より前に登録されたレコードをクリアします。また、WHERE 句を使用してフィルタリングを完了します。

  6. 国と地域に従ってユーザーの場所をマークし、地方自治体レベルの情報を削除します。LZO 圧縮を使用し、CREATE EXTERNAL TABLE を使用して外部テーブルを作成し、SQL SELECT ステートメントを使用してクエリを完了します。

  7. プライバシーを保護するために、携帯電話番号の中央の 4 桁をアスタリスク (*) に置き換えます。置換を完了するには、CASE WHEN...THEN...END または UDF 関数も使用します。

  8. 興味、趣味、消費習慣などのデータに基づいてユーザーのポートレートを確立し、ユーザーのきめ細かいラベリングを実行します。このタイプのラベリングは、コンテンツベースの推奨アルゴリズムを使用して完了できますが、現在は手動のラベリング方法が一般的に使用されています。

  9. 商品の購入、検索、コレクションなどのデータに対して相関分析を実施し、ユーザーがどのような商品、ブランド、スタイルを好むのかなどを分析します。この種の分析は、協調フィルタリングをベースとした手法を使用して完了できますが、現在は一般的に完了しています。手動の注釈方法を使用します。

  10. さまざまなフィールドのユーザー数をカウントするレポートを生成する: このタイプのレポートは、HQL または PL/SQL を使用して作成できますが、データ量が多く、多くのプライベート データが含まれるため、ここでは例を示しません。

おすすめ

転載: blog.csdn.net/universsky2015/article/details/133446379