データ クリーニング: 乱雑なデータを整理されたデータに変える
データの準備が難しいのは、プロセスが客観的ではない、または少なくともそのように感じられないためです。 「問題を説明するのに最適なデータ形式は何ですか?」のような質問は客観的ではありません。解決したい問題の観点から考え、パイプラインを通じていくつかの異なる表現を試す必要があります。
ハドリー・ウィッカムはライス大学の非常勤教授であり、RStudio の主任研究員であり、この問題に深い関心を持っています。彼は、reshape、plyr、ggplot2 など、データを整理して表示するための最も人気のある R パッケージのいくつかを作成しました。ウィッカム氏は、雑誌記事 Tidy Data の中で、データ クリーニングに関する自身の見解を示し、整ったデータとは何を意味するのかを定義しています。
私の新しい本『Data Preparation for Machine Learning』 でプロジェクトをキックスタートします。これにはステップバイステップのチュートリアルとPython ソース コード ファイルが含まれています。すべての例。
始めましょう。
データクリーニング
データ分析時間の多くは、最大 80% がデータのクリーニングとデータの準備に費やされます。ウィッカム氏は、これは 1 回限りのプロセスではなく、連続するパスごとに問題をより深く理解するにつれて反復されるものであると指摘します。目的は、実行しようとしているデータ分析を容易にするためにデータを構造化することです。
きちんとしたデータ
ウィッカムのアイデアは、コンピューター サイエンスのリレーショナル データベースとデータベースの正規化のアイデアを活用していますが、彼の聴衆は統計学者やデータ アナリストです。彼は用語の定義から始めて、行と列について話すだけでは十分ではないと示唆しています。
- データは特定の型の値のコレクションです
- すべての値は変数に属します
- すべての変数は観測値に属します
- 観測値は、ユニット (オブジェクトやイベントなど) の変数です。
変数は列、観測値は行、観測値のタイプはテーブルです。古典的に、ウィッカムはこれをリレーショナル データベース理論の第 3 正規形に関連付けます。彼はまた、変数のタイプを固定と測定として説明し、測定前に固定を表に整理することを提案しています。
- 固定変数: 実験計画の一部であり、実験が行われる前に知られている変数 (人口動態など)
- 測定変数: 研究で測定された変数。
データを整理する目的は、データの意味 (セマンティクス) をデータの構造にマッピングすることです。
実用例
ウィッカム氏は、実際のデータセットは整然としたデータの原則に違反していると述べています。彼は 5 つの一般的な問題について説明します。
- 列ヘッダーは変数名ではなく値です
- 複数の変数が 1 つの列に格納されます
- 変数は行と列の両方に格納されます
- 複数種類の観測単位を同じテーブルに格納
- 単一の観測単位は複数のテーブルに保存されます
次に、これらの問題のそれぞれについて実際に実行された例を示します。彼は、問題ごとにサンプルの実世界データを提示し、それを整理して修正するプロセスを示します。
これらの例は非常に有益であり、実際に実行された例だけでもこの論文を読む価値があります。彼は続けて、メキシコの死亡率データを用いたより大規模な事例研究を提供しています。
整理整頓されたデータツール
データが整理されて初めてデータ分析に役立ちます。データを整理すると、データを整理するために設計されたツールを使用してデータ分析タスクを簡単に実行できるようになります。
- 操作: 集計、フィルタリング、並べ替え、変換、並べ替えなどの変数の操作。
- 視覚化: 調査と説明のためにグラフやチャートを使用してデータを要約します。
- モデリング: これは整然としたデータを生み出す原動力となるインスピレーションであり、モデリングこそが私たちが始めたものです。
ウィッカム氏は、整頓されたデータはデータクリーニングプロセスの一部にすぎないことを注意深く指摘しています。整然としたデータ以外の領域には、変数タイプ (日付と数値) の解析、欠損値、文字エンコーディング、タイプミス、外れ値の処理などがあります。
彼は、この作品は彼自身のコンサルティングと教育の経験に基づいており、彼の R パッケージが最もダウンロードされているパッケージの一部であることを考えると、彼の経験は相当なものであるとコメントしています。
リソース
ウィカム氏は 2011 年にこれらのアイデアを発表したようです。Vimeo の Tidy Data というタイトルのプレゼンテーションで同様のアイデアのプレゼンテーションを視聴し、スライド (PDF) を確認することができます。
Wickam は 2011 年にも、エンジニアリング データ分析 (R と ggplot2 を使用) というタイトルで同じアイデアについて Google の技術講演を行いました。この講演も視聴することをお勧めします。彼は、この作業における ggplot2 (グラフィックスの文法) などのドメイン固有言語の重要性を強調しています。また、透明性、再現性、自動化などの特性を得るために、この作業に (Excel ではなく) プログラミング言語を使用することの重要性も強調しています。同じ死亡率のケーススタディが使用されます。
ウィッカムが論文の中で参照している良書としては、次のようなものがあります。
- データベース管理のリレーショナル モデル: リレーショナル データベースの理論とデータの正規化について。
- 探索的データ マイニングとデータ クリーニング データ クリーニングとデータ準備のベスト プラクティスについて。
- グラフィックスの文法 R および Python のグラフ作成ライブラリ ggplot で使用される、今や有名になったグラフィックスの文法について。
- Lattice: R を使用した多変量データの視覚化 データをグラフ化するための Lattice R パッケージ上。