バッドデータハンドブック

―データにまつわる問題への19の処方箋

[cover photo]
TOPICS
Data Science , Database
発行年月日
PRINT LENGTH
310
ISBN
978-4-87311-640-2
原書
Bad Data Handbook
FORMAT
PDF
Ebook
3,080円
Ebookを購入する

値の欠落、形式から外れたレコード、エンコーディング形式が不明な文字列。「バッドデータ」と聞いた時に思い浮べる典型例です。しかし、これら以外にも「そもそもデータにアクセスできない」「消えてしまった」「昨日と違っている」「データはあるが形式が処理に適していない」など、データを収集・分析するエンジニアは、これらの「バッドデータ」と正面から向きあわなければならないことが多々あります。本書では、これらの問題のあるデータのパターンを紹介し、その対処法を解説しています。
19人のデータ分析の専門家が、自らの経験を通して得た、さまざまな教訓、実践的な方法論等を詳述した本書は、ビッグデータ時代のエンジニアにとって必携の一冊となるでしょう。
Ebook版(PDF)も同時発売。

目次

監訳者まえがき
著者について
まえがき

1章 はじめに:バッドデータとは何か?

2章 気のせいかな。このデータ、何かおかしくないか?
    2.1 データ構造を理解する
    2.2 フィールドの検証
    2.3 値の検証
    2.4 単純な統計による物理的解釈
    2.5 可視化
    2.6 キーワードPPCの例
    2.7 検索参照の例
    2.8 推薦分析
    2.9 時系列データ
    2.10 まとめ

3章 機械ではなく人間が使うことを意図したデータ
    3.1 データ
    3.2 問題:人間が使うためにフォーマットされたデータ
        3.2.1 データの配置
        3.2.2 複数ファイルにわたるデータ
    3.3 解決策:コードを書く
        3.3.1 扱いにくいフォーマットからデータを読み込む
        3.3.2 複数のファイルにわたるデータを読み込む
    3.4 あとがき
    3.5 ほかのフォーマット
    3.6 まとめ

4章 プレーンテキストに潜むバッドデータ
    4.1 プレーンテキストのエンコーディング
    4.2 テキストエンコーディングの推測
    4.3 テキストの正規化
    4.4 問題:アプリケーション固有文字のプレーンテキストへの漏れ出し
    4.5 Pythonを使ったテキスト処理
    4.6 練習問題

5章 Webにあるデータの(再)構成
    5.1 データを直接入手できないか?
    5.2 一般的なワークフロー
        5.2.1 robots.txt
        5.2.2 パターンの特定
        5.2.3 パースのためにオフライン版を保存する
        5.2.4 ページから情報をスクレイプする
    5.3 現実の難しさ
        5.3.1 できるだけ生のコンテンツをダウンロードする
        5.3.2 フォーム、ダイアログボックス、新規ウィンドウ
        5.3.3 Flash
    5.4 ダークサイド
    5.5 まとめ

6章 オンラインレビューから嘘つきと混乱した人を発見する
    6.1 Weotta
    6.2 レビューの入手
    6.3 センチメント分類
    6.4 極性のある言葉
    6.5 コーパス生成
    6.6 分類器のトレーニング
    6.7 分類器の検証
    6.8 データによる設計
    6.9 学んだこと
    6.10 まとめ
    6.11 リソース

7章 バッドデータは起立して
    7.1 例題1:製造時の欠陥削減
    7.2 例題2:だれが電話をかけたのか?
    7.3 例題3:「平均値」が「標準的な値」とみなせないとき
    7.4 学んだこと
    7.5 これはテストに出ますか?

8章 血と汗と尿
    8.1 とってもオタクな入れ替わりコメディ
    8.2 化学者による数値の作り方
    8.3 All Your Database Are Belong to Us
    8.4 チェックしよう
    8.5 人生は太く短く、見栄えの良いコードを残すべし
    8.6 化学者とスプレッドシート乱用者のためのリハビリ
    8.7 まとめ

9章 データと現実が一致しないとき
    9.1 それは何のティッカー?
    9.2 分割、配当、単位変更
    9.3 バッドリアリティ
    9.4 まとめ

10章 バイアスとエラーの源
    10.1 補完バイアス
    10.2 報告エラー
    10.3 その他のバイアス源
        10.3.1 トップコーディング、ボトムコーディング
        10.3.2 継ぎ目バイアス
        10.3.3 代理報告
        10.3.4 サンプル選択
    10.4 まとめ
    10.5 参考文献

11章 最善は善の敵、バッドデータは本当にバッドなのか?
    11.1 大学院時代
    11.2 プロフェッショナルな世界へ
    11.3 政府の仕事へ
    11.4 行政データという現実
    11.5 911緊急通報データ
    11.6 さらに先へ
    11.7 学んだこと、そして今後の展望

12章 ファイルにこだわる
    12.1 昔のはなし
        12.1.1 ツールセットの構築
        12.1.2 データストアという障害
    12.2 ファイルをデータベースと見なす
        12.2.1 ファイルはシンプル
        12.2.2 ファイルは何にでも使える
        12.2.3 ファイルには何でも入れられる
        12.2.4 データ破損が局所的である
        12.2.5 すばらしいツールがある
        12.2.6 導入コストがかからない
    12.3 ファイルの概念
        12.3.1 エンコーディング
        12.3.2 テキストファイル
        12.3.3 バイナリデータ
        12.3.4 メモリマップドファイル
        12.3.5 ファイルフォーマット
        12.3.6 区切り文字
    12.4 ファイルに基づいたWebフレームワーク
        12.4.1 モチベーション
        12.4.2 実装
    12.5 考察

13章 Crouching Table, Hidden Network
    13.1 リレーショナルなコスト配分モデル
    13.2 組み合わせ爆発という繊細な響き
    13.3 隠れたネットワークが現れる
    13.4 グラフを格納する
    13.5 Gremlinを使ったグラフのナビゲート
    13.6 ネットワークプロパティに価値を見出す
    13.7 複数のデータモデルから、仕事にふさわしいツールを使う
    13.8 謝辞

14章 クラウドコンピューティングの神話
    14.1 クラウド入門
    14.2 「クラウド」とは何か?
    14.3 クラウドとビッグデータ
    14.4 フレッドについて
    14.5 最初はすべてがうまくいっている
    14.6 すべてをクラウドのインフラに任せる
    14.7 成長に合わせて、最初は簡単にスケールする
    14.8 やがて問題が起こり始める
    14.9 パフォーマンスを改善する必要がある
    14.10 高速なI/Oが重要になる
    14.11 局所的な機能停止が大規模なサービス停止を引き起こす
    14.12 高速なI/Oは高く付く
    14.13 データサイズが増加する
    14.14 地理的冗長性が最優先になる
    14.15 水平方向のスケールは思っていたほど簡単ではない
    14.16 コストは劇的に増加する
    14.17 フレッドの愚かさ
    14.18 神話1:クラウドはあらゆるインフラ構成要素にとって、すばらしい解決策である
        14.18.1 この神話はフレッドの話にどう関係するのか
    14.19 神話2:クラウドはお金を節約する
        14.19.1 この神話はフレッドの話にどう関係するのか
    14.20 神話3:クラウドのI/Oパフォーマンスは、ソフトウェアRAIDによって許容できるレベルにまで改善される
        14.20.1 この神話はフレッドの話にどう関係するのか
    14.21 神話4:クラウドコンピューティングは水平方向のスケールを簡単にする
        14.21.1 この神話はフレッドの話にどう関係するのか
    14.22 まとめ

15章 データサイエンスのダークサイド
    15.1 落とし穴を避ける
    15.2 汝、データについて知るべからず
        15.2.1 データをきれいにしてまとめる際には一貫性を持つべからず
        15.2.2 データは正しく完全だと思え
        15.2.3 時間区切りデータのあふれ
    15.3 汝、データサイエンティストにあらゆるタスクのための単一ツールを与えよ
        15.3.1 アドホックな分析のためにプロダクション環境を使う
        15.3.2 理想的なデータサイエンス環境
    15.4 汝、分析のために分析せよ
    15.5 汝、学びを共有するべからず
    15.6 汝、データサイエンティストに全能を期待せよ
        15.6.1 データサイエンティストは組織のどこにいるのか?
    15.7 最後に

16章 機械学習の専門家の手なづけ方
    16.1 問題を定義する
    16.2 作る前に、うまくいっているふりをする
    16.3 トレーニングセットを作成する
    16.4 特徴を選び出す
    16.5 データをエンコードする
    16.6 トレーニングセット、テストセット、ソリューションセットに分ける
    16.7 問題を説明する
    16.8 質問に答える
    16.9 解決策を統合する
    16.10 まとめ

17章 データ追跡可能性
    17.1 なぜ?
    17.2 個人的経験
        17.2.1 スナップショット
        17.2.2 情報源の保存
        17.2.3 情報源の重み付け
        17.2.4 データを元に戻す
        17.2.5 フェーズを分ける(そしてフェーズを純粋に保つ)
        17.2.6 根本原因を特定する
        17.2.7 改善領域を見つける
    17.3 不変性:関数型プログラミングからアイデアを拝借する
    17.4 例題
        17.4.1 クローラー
        17.4.2 変更
        17.4.3 クラスタリング
        17.4.4 人気
    17.5 まとめ

18章 ソーシャルメディア:消去可能インク?
    18.1 ソーシャルメディア:これはだれのデータか?
    18.2 コントロール
    18.3 商用再配信
    18.4 コミュニケーションと表現に関する期待
    18.5 新しいユーザが抱く期待の技術的影響
    18.6 業界は何をするのか?
        18.6.1 検証API
        18.6.2 更新通知API
    18.7 エンドユーザは何をすべきか?
    18.8 どのように協業するのか?

19章 データ品質分析の解明:データが十分良いときを知る
    19.1 フレームワークの紹介:データ品質分析の4つのC
    19.2 完全である
    19.3 一貫している
    19.4 正しさ
    19.5 説明責任
    19.6 まとめ

索引