アジャイルデータサイエンス

―スケーラブルに構築するビッグデータアプリケーション

[cover photo]
TOPICS
Data Science , Database , Python
発行年月日
PRINT LENGTH
236
ISBN
978-4-87311-671-6
原書
Agile Data Science
FORMAT
PDF
Ebook
2,860円
Ebookを購入する

本書は、データの収集・集約・解析・レポート化をアジャイルに行うアプリケーションを構築するための考え方と方法を解説します。Python、Apache Pig、D3.jsライブラリのような軽量ツールを使い、メール受信ボックスを使ったデータマイニングを行うためのサンプルアプリケーションを作成します。データを解析するためのアジャイルな環境を作る方法やツールの組み合わせ方などを解説し、さらに行いたい解析やデータの特性によって解析の手段を変更できるようにする方法も学びます。日本語版では付録としてクラスメソッドの能登諭氏と佐々木大輔氏による「Fluentdによるログの収集」と「Elasticsearch + Kibanaによるログの可視化」を追加。データの特性に対応したモデルの構築について学べる本書は、ビッグデータマイニングを実践したいエンジニア必携の一冊です。

目次

目次


訳者まえがき
はじめに

I部 セットアップ
1章 理論
    1.1 アジャイルビッグデータ
    1.2 重要な用語の定義
    1.3 アジャイルビッグデータに取り組むチーム
        1.3.1 機会と課題の認識
        1.3.2 変化への適応
    1.4 アジャイルビッグデータのプロセス
    1.5 コードレビューとペアプログラミング
    1.6 アジャイルな環境:エンジニアリングの生産性
        1.6.1 コラボレーション空間
        1.6.2 プライベート空間
        1.6.3 パーソナル空間
    1.7 大判のプリントアウトによるアイデアの実現

2章 データ
    2.1 メール
    2.2 生のデータでの作業
        2.2.1 生のメール
        2.2.2 構造化データと半構造化データ
    2.3 SQL
    2.4 NoSQL
        2.4.1 シリアライゼーション
        2.4.2 スキーマの進化の過程での特徴の抽出と公開
        2.4.3 データパイプライン
    2.5 データに対する視点
        2.5.1 ネットワーク
        2.5.2 時系列
        2.5.3 自然言語
        2.5.4 確率
    2.6 まとめ

3章 アジャイルなツール群
    3.1 スケーラビリティ = 単純さ
    3.2 アジャイルビッグデータの処理
    3.3 Pythonの仮想環境(virtualenv)のセットアップ
    3.4 Avroを利用したイベントのシリアライズ
        3.4.1 Avro for Python
    3.5 データの収集
    3.6 Pigを使ったデータ処理
        3.6.1 Pigのインストール
    3.7 MongoDBへのデータ展開
        3.7.1 MongoDBのインストール
        3.7.2 MongoDBのJavaドライバのインストール
        3.7.3 mongo-hadoopのインストール
        3.7.4 PigからMongoDBへのデータ送信
    3.8 ElasticSearchによるデータの検索
        3.8.1 インストール
        3.8.2 ElasticSearchとWonderdog付きのPig
    3.9 ワークフローへの反映
    3.10 軽量なWebアプリケーション
        3.10.1 PythonとFlask
    3.11 データのプレゼンテーション
        3.11.1 Bootstrapのインストール
    3.12 Bootstrapのブート
        3.12.1 D3.jsとnvd3.jsによるデータのビジュアライズ
    3.13 まとめ

4章 クラウドへ!
    4.1 イントロダクション
    4.2 GitHub
    4.3 dotCloud
        4.3.1 dotCloudでのecho
        4.3.2 Python workers
    4.4 Amazon Web Services
        4.4.1 Simple Storage Service
        4.4.2 Elastic MapReduce
    4.5 MongoDB as a Service
    4.6 道具立て
        4.6.1 Google Analytics
        4.6.2 Mortar Data

II部 ピラミッドを登ろう
5章 レコードの収集と表示
    5.1 まとめ上げる
    5.2 Inboxの収集とシリアライズ
    5.3 メールの処理と展開
    5.4 ブラウザでのメールの表示
        5.4.1 Flaskとpymongoを使ったメールの提供
        5.4.2 Jinja2によるHTML5のレンダリング
    5.5 アジャイルのチェックポイント
    5.6 メールのリスト表示
        5.6.1 MongoDBを使ったメールのリスト表示
        5.6.2 プレゼンテーションの解剖学
    5.7 メールの検索
        5.7.1 Pig、ElasticSearch、Wonderdogによるメールに対するインデックスの構築
        5.7.2 Web上でのメールの検索
    5.8 まとめ

6章 グラフを使ったデータのビジュアライズ
    6.1 優れたグラフ
    6.2 エンティティの取り出し:メールアドレス
        6.2.1 メールの抽出
    6.3 時間のビジュアライズ
    6.4 まとめ

7章 レポートによるデータの探求
    7.1 複数のグラフを持つレポートの構築
    7.2 レコード同士のリンク
    7.3 TF-IDFを利用したメールからのキーワードの抽出
    7.4 まとめ

8章 予測
    8.1 メールへの返信率の予測
    8.2 パーソナライズ
    8.3 まとめ

9章 アクションの促進
    9.1 成功するメールの特徴
    9.2 単純ベイズ法による予測の向上
    9.3 P(Reply | From & To)
    9.4 P(Reply | Token)
    9.5 リアルタイムの予測
    9.6 イベントのロギング
    9.7 まとめ

付録A Fluentdによるログの収集
    A.1 前提
    A.2 Fluentdとは
    A.3 Fluentdのインストール
        A.3.1 EC2インスタンスの起動
        A.3.2 td-agentによるインストール
        A.3.3 Fluentdの起動と停止
        A.3.4 その他のインストール方法
    A.4 Fluentdの設定ファイル
        A.4.1 sourceディレクティブ
        A.4.2 matchディレクティブ
        A.4.3 tag
        A.4.4 ルーティング
    A.5 アクセスログをS3にアップロード
        A.5.1 Apacheのインストール
        A.5.2 in_tailインプットプラグイン
        A.5.3 out_s3アウトプットプラグイン
        A.5.4 設定ファイルの再読み込みと動作確認
        A.5.5 out_s3アウトプットプラグイン詳細
        A.5.6 バッファプラグイン
    A.6 アプリケーションログをS3に転送
        A.6.1 in_forwardインプットプラグイン
        A.6.2 fluent-logger-rubyによるログの入力
    A.7 /etc/td-agent/td-agent.confに最初から記述されているその他のプラグイン
        A.7.1 fluent-plugin-tdプラグイン
        A.7.2 debug_agentプラグイン
    A.8 最後に

付録B Elasticsearch + Kibanaによるログの可視化
    B.1 Elasticsearchとは
    B.2 Kibanaとは
    B.3 前提
    B.4 準備
    B.5 Kibanaのインストール
    B.6 Kibanaの設定
    B.7 Kibanaの使い方
        B.7.1 Query
        B.7.2 Dashboardのカスタマイズ
    B.8 まとめ

索引