UserEngagement_logoUserEngagement_logoUserEngagement_logoUserEngagement_logo
  • 記事を探す
    • ロール別ガイド
      • 管理者向け
      • マーケター向け
      • エンジニア向け
    • 用途から探す
      • 業務効率化・自動化
      • 新規顧客獲得
      • 既存顧客LTV向上
      • 企業DXの推進
    • 機能から探す
      • 顧客データ活用・施策連携
      • セキュリティ
      • データ加工、処理
      • データの可視化
      • 全機能をみる
    • 活用事例を探す
    • 全記事から探す
  • LINK
    • リリースノート
    • プロダクトドキュメント
    • Status Page(Incident情報)
    • Workflowサンプル集(英語)-TreasureBox
  • Academy
ログイン
✕

データ品質を高めるデータプロファイリング

  • Home
  • 表示用 Data Management(ガイドページ表示用)
  • データ品質を高めるデータプロファイリング
Home Article howto データ品質を高めるデータプロファイリング
2021年4月21日
Categories
  • Data Management(ガイドページ表示用)
  • howto
  • データの加工(ガイドページ表示用)
  • 企業DXの推進、マーケティング部門以外におけるデータ活用高度化(ガイドページ表示用)
Tags
  • Data Management
  • エンジニア向けガイド
  • データ加工
  • 企業DX推進

データマネジメントチームの森 達也です。
本記事では、データ品質の概要と、データ品質を高める最初のプロセスであるデータプロファイリングの実践方法をご紹介します。

目次
  1. データ品質とは
  2. データ品質管理のプロセス
  3. データプロファイリングとは
  4. 実行方法
  5. 実行結果
  6. データセットの概要
  7. 単一変数のプロファイリング
  8. 複数変数のプロファイリング
続きは会員登録およびログイン後にご覧いただけます。以下からログインしてください。

会員登録・ログイン

データ品質とは

データ品質とは、「データ利用者の期待と要求を満たす度合いである」とされています。高品質なデータは顧客体験の改善や、正しい意思決定などの恩恵をもたらす一方で、低品質なデータは、様々な問題を引き起こす可能性があります。例えば、氏名やメールアドレスなど重要な情報の入力に誤りがある場合、間違った情報を送ってしまったり、連絡が取れないなどの顧客満足度の低下、機会損失を招く恐れがあります。

筆者の経験上も、データソース間でデータ値やカラムの定義が異なっていて、統一するのに苦労したり、手入力のデータに欠損や不正確な情報があり、解釈を誤りそうになったなどデータ品質で苦しんだ場面が多々あります。データに求められる目的は、ビジネス要求やデータ環境によって変化するので、ステークホルダー間の合意や継続的な見直しが必要となります。そのため全てのケースで当てはまる訳ではありませんが、データ品質の一般的な評価軸として下記があります。

正確性 データが「現実」の実態を正しく表していること
完全性 必要なデータが全て存在するかどうか
一貫性 データ値がデータセット間で一貫して表現されていること
整合性 データセット内において欠落がないか
妥当性 データパターンが期待を満たすかどうか
適時性 データが要求された時点、最新のものであるかどうか
一意性/重複排 エンティティがデータセット内に複数存在しないこと
有効性 データ値が定義された定義(データ型、書式、精度)と一致するかどう

出典:「データマネジメント知識体系ガイド 第二版」DAMA International (著), DAMA 日本支部 (翻訳), Metafind コンサルティング株式会社 (翻訳) 日経BP

データ品質管理のプロセス

データ品質を管理するには、データプロファイリング、データクレンジング、モニタリングのプロセスを経ることが一般的です。データプロファイリングでは、現状のデータを統計的手法を活用して検査して、データの理解を深めるとともに、データ品質における問題がないかを評価します。

データクレンジングでは、データプロファイリングで見つかった課題に対して、データの変換処理を行い、期待する品質に適合させます。クレンジングは時間のかかる作業なので、理想的にはデータソース側で課題が解決されることが、望ましいとされています。モニタリングでは、前段のプロセスでデータ品質の問題が解決されたか、データの変化により新しい問題が生じていないかを定期的に監視します。

データプロファイリングとは

データプロファイリングの実践方法についてご紹介します。対象データのボリュームや、求められる品質基準により異なりますが、トレジャーデータのご契約企業様だとSQL、BIツール、専門ツール(データプロファイリングツール)を活用されることが多いようです。ここでは効率的な作業が可能な、専門ツールによるデータプロファイリングを例にします。

データプロファイリングツールは、商用ツール含めて様々存在しますが、無償かつ容易に利用可能なものとしてPandas Profilingがあります。こちらはPythonで動作してPandasのDataframeを扱えるため、プログラミングは苦手という方でも、最低限の記述で動作させることができます。
Pandas Profiling: https://github.com/pandas-profiling/pandas-profiling

実行方法

実行環境としてはJupyter NotebookやGoogle Colaboratoryがお勧めです。それらの環境構築方法については割愛しますが、本稿ではGoogle Colaboratoryを使用した場合の、実行ステップをご説明します。

Step1

まず、必要なライブラリ(Pandas ProfilingとTreasure Data Python Clientなど)のインストールを行います。例えば下記のようなコードになります。

!pip install pandas-profiling==2.9.0
!pip install pytd[spark]
import pandas as pd
from pandas_profiling import ProfileReport
import pytd
import warnings

warnings.filterwarnings('ignore')
!pip show pandas_profiling

Step2

続いて対象データのある、Treasure Dataとの接続設定をします。API Keyの入力を求められるため、ご自身のAPI Key(Master Key)を入力します。またendpointもお使いのリージョンに合わせて変更して下さい。

API Keyの確認方法:https://docs.treasuredata.com/display/public/PD/Getting+Your+API+Keys
エンドポイント:https://docs.treasuredata.com/display/public/PD/Sites+and+Endpoints

from getpass import getpass
my_apikey = getpass()
client = pytd.Client(apikey=my_apikey, endpoint='https://api.treasuredata.com/', database='xxxx', default_engine='presto')

def TdProfileReport(query):
 res = client.query(query)
 df= pd.DataFrame(**res)
 return ProfileReport(df)

Step3

対象データを抽出するSQLを記述し、プロファイリングを実行します。プロファイリング処理自体は、Python上で実行されるため、データ量が多い場合は適切なレコード数にサンプリングをすることをお勧めいたします。

Prestoのサンプリング方法: https://prestodb.io/docs/current/sql/select.html#tablesample

query = '''
SELECT
 *
FROM
 mst_tduid_device TABLESAMPLE BERNOULLI (1)
'''
profile = TdProfileReport(query)
profile

実行結果

各ステップを実行すると、結果がレポートとして画面に表示されます。ご自身またはチームメンバーとレポートを見ながら、現状のデータについて共通理解を深めつつ、データ品質の各評価軸を満たしているかを議論する事になります。レポートの各パートについて簡単に説明していきます。

データセットの概要

データセット全体の概要(レコード数、欠損値、重複レコードの割合)などのが確認できます。重複や欠損値が存在する場合は、ここで検知することができます。

単一変数のプロファイリング

単一カラム毎に基礎的な統計量(NULL数、重複値、欠損値、最大値・最小値、平均・中央値)と度数分布などを確認できます。主キーとなるカラムに重複や欠損がないか(一意性)、カテゴリー変数の整合性、一貫性は取れているか、データ分布に妥当性はあるかなど評価が可能です。ここで品質上の問題が見つかった場合は、次のプロセスであるデータクレンジングでの改善を検討します。

複数変数のプロファイリング

複数カラムの相関関係が確認できます。複数変数間で、相関するものは何か、整合性が取れているか(矛盾がないか)などを確認することができます。ここで問題が見つかった場合は、同様にデータクレンジングでの改善を検討します。

おわりに

本稿ではデータ品質の定義と、データ品質管理の3つのプロセス(データプロファイリング、データクレンジング、モニタリング)、最初のステップとなるデータプロファイリングの方法についてご紹介しました。残りのステップとなるデータクレンジングやモニタリングについては、今後の記事にてご紹介できればと思います。最後までお読みいただき、ありがとうございました。

Share
森 達也
森 達也

Related posts

2023年6月14日

トレジャーデータPSチームによるダッシュボード構築プロジェクト事例
~トレジャーデータ書籍Appendix~


Read more
2023年5月31日

ダッシュボードの普及と課題
~トレジャーデータ書籍出版記念!一部先行公開~


Read more
2023年4月25日

Cookieに依存せずに広告CV計測を支援する機能「Conversion API」


Read more

Comments are closed.


  • ホーム
  • 個人情報の取り扱いについて
  • 個人情報に関する公表文
  • インフォマティブデータの取扱いについて
  • 会員情報変更
  • 退会手続きはこちら
記事を探す
  • ロール別ガイド
  • 用途別ガイド
  • 機能別ガイド
  • 活用事例
  • 全記事一覧
Community
  • Treasure Academy
LINKS
  • リリースノート
  • プロダクトドキュメント
  • Status Page(Incident情報)
  • Workflowサンプル集(英語)-TreasureBox
Copyright 2022 Treasure Data, Inc.
    ログイン