コマンドラインではじめるデータサイエンス ―分析プロセスを自在に進めるテクニック

Book description

データ分析における一連の作業(データ収集、データクレンジング、モデリング)をコマンドラインで自由自在に進めるための考え方やツールの使い方を解説します。データの多様化、大規模化に伴い効率的にデータ分析を行う上でコマンドラインツールはかかせません。本書では、データ分析作業における各フェーズでのコマンドラインツールの使い方から、効率化のためのワークフローの管理や並列処理などまでを幅広く紹介します。日本語版では監訳者による本書のテクニックを利用する時に壁になるであろう「日本語処理」と、実務で利用する場合の「ケーススタディ」を収録。

Table of contents

  1. 監訳者まえがき
  2. はじめに (1/4)
  3. はじめに (2/4)
  4. はじめに (3/4)
  5. はじめに (4/4)
  6. 1章 イントロダクション
    1. 1.1 概要
    2. 1.2 データサイエンスはOSEMN
      1. 1.2.1 データの獲得
      2. 1.2.2 データのクレンジング
      3. 1.2.3 データの精査
      4. 1.2.4 データのモデリング
      5. 1.2.5 データの解釈
    3. 1.3 幕間の章
    4. 1.4 コマンドラインとは何か
    5. 1.5 なぜコマンドラインでデータサイエンスなのか
      1. 1.5.1 コマンドラインはアジャイル
      2. 1.5.2 コマンドラインは補完的
      3. 1.5.3 コマンドラインはスケーラブル
      4. 1.5.4 コマンドラインは拡張性が高い
      5. 1.5.5 コマンドラインは普遍的
    6. 1.6 現実のユースケース
    7. 1.7 参考文献
  7. 2章 さあ始めましょう
    1. 2.1 概要
    2. 2.2 Data Science Toolboxのセットアップ
      1. 2.2.1 ステップ1: VirtualBoxのダウンロード、インストール
      2. 2.2.2 ステップ2: Vagrantのダウンロード、インストール
      3. 2.2.3 ステップ3: Data Science Toolboxのダウンロード、起動
      4. 2.2.4 ステップ4: ログイン(LinuxとMac OS X)
      5. 2.2.5 ステップ4: ログイン(Microsoft Windows)
      6. 2.2.6 ステップ5: シャットダウンと環境の作り直し
    3. 2.3 基本概念とツール
      1. 2.3.1 環境
      2. 2.3.2 コマンドラインツールの実行
      3. 2.3.3 コマンドラインツールの5つのタイプ
      4. 2.3.4 コマンドラインツールの結合
      5. 2.3.5 入出力のリダイレクト
      6. 2.3.6 ファイルの操作
      7. 2.3.7 ヘルプ
    4. 2.4 参考文献
  8. 3章 データの獲得
    1. 3.1 概要
    2. 3.2 ローカルファイルからData Science Toolboxへのコピー
      1. 3.2.1 ローカルバージョンのData Science Toolbox
      2. 3.2.2 リモートバージョンのData Science Toolbox
    3. 3.3 ファイルの解凍
    4. 3.4 Microsoft Excelスプレッドシートの変換
    5. 3.5 リレーショナルデータベースへのクエリー
    6. 3.6 インターネットからのダウンロード
    7. 3.7 ウェブAPI呼び出し
    8. 3.8 参考文献
  9. 4章 再利用可能なコマンドラインツールの作り方
    1. 4.1 概要
    2. 4.2 1行プログラムのシェルスクリプトへの書き換え
      1. 4.2.1 ステップ1: コピーアンドペースト
      2. 4.2.2 ステップ2: 実行許可の追加
      3. 4.2.3 ステップ3: shebangの定義
      4. 4.2.4 ステップ4: 固定されている入力の除去
      5. 4.2.5 ステップ5: パラメータ化
      6. 4.2.6 ステップ6: PATHの拡張
    3. 4.3 PythonとRによるコマンドラインツールの作り方
      1. 4.3.1 シェルスクリプトの移植
      2. 4.3.2 標準入力からのストリーミングデータの処理
    4. 4.4 参考文献
  10. 5章 データのクレンジング
    1. 5.1 概要
    2. 5.2 プレーンテキストに対する一般的なクレンジング
      1. 5.2.1 行のフィルタリング
      2. 5.2.2 値の抽出
      3. 5.2.3 値の置換、削除
    3. 5.3 CSVの操作
      1. 5.3.1 本体、ヘッダー、列
      2. 5.3.2 CSVに対するSQLクエリー
    4. 5.4 HTML/XMLとJSONの操作 (1/2)
    5. 5.4 HTML/XMLとJSONの操作 (2/2)
    6. 5.5 CSVでよく行われるクレンジング処理
      1. 5.5.1 列の抽出と順序変更
      2. 5.5.2 行のフィルタリング
      3. 5.5.3 列のマージ
      4. 5.5.4 複数のCSVファイルの結合
    7. 5.6 参考文献
  11. 6章 データワークフローの管理
    1. 6.1 概要
    2. 6.2 Drakeとは何か
    3. 6.3 Drakeのインストール方法
    4. 6.4 Project Gutenbergでもっとも人気の高い電子ブックの取得
    5. 6.5 ワークフローの始まりはいつもシングルステップ
    6. 6.6 依存関係
    7. 6.7 特定のターゲットの再ビルド
    8. 6.8 この章を振り返って
    9. 6.9 参考文献
  12. 7章 データの精査
    1. 7.1 概要
    2. 7.2 データとその特徴の調査
      1. 7.2.1 まずはヘッダを持つか
      2. 7.2.2 全量調査
      3. 7.2.3 列名とデータ型
      4. 7.2.4 一意な識別子、連続変数、因子
    3. 7.3 記述統計の計算
      1. 7.3.1 csvstatの使い方
      2. 7.3.2 RioによってコマンドラインからRを実行する方法
    4. 7.4 可視化イメージの作成
      1. 7.4.1 GnuplotとfeedGnuplot
      2. 7.4.2 ggplot2入門
      3. 7.4.3 ヒストグラム
      4. 7.4.4 棒グラフ
      5. 7.4.5 密度プロット
      6. 7.4.6 箱ひげ図
      7. 7.4.7 散布図
      8. 7.4.8 折れ線グラフ
      9. 7.4.9 まとめ
    5. 7.5 参考文献
  13. 8章 並列パイプライン
    1. 8.1 概要
    2. 8.2 逐次処理
      1. 8.2.1 数値を対象とする反復処理
      2. 8.2.2 行を対象とする反復処理
      3. 8.2.3 ファイルを対象とするループ
    3. 8.3 並列処理
      1. 8.3.1 GNU parallel入門
      2. 8.3.2 入力の指定
      3. 8.3.2 並行ジョブの数の制御
      4. 8.3.3 ロギングと出力
      5. 8.3.4 並列ツールの作成
    4. 8.4 分散処理
      1. 8.4.1 実行中のAWS EC2インスタンスのリストの取得
      2. 8.4.2 リモートマシンでのコマンドの実行
      3. 8.4.3 リモートマシン間でのローカルデータの分散
      4. 8.4.4 リモートマシンでのファイル処理
    5. 8.5 この章を振り返って
    6. 8.6 参考文献
  14. 9章 データのモデリング
    1. 9.1 概要
    2. 9.2 ワインもう一杯!
    3. 9.3 Tapkeeによる次元圧縮
      1. 9.3.1 Tapkee入門
      2. 9.3.2 Tapkeeのインストール
      3. 9.3.3 線形写像と非線形写像
    4. 9.4 Wekaによるクラスタリング
      1. 9.4.1 なぜWekaを使うのか
      2. 9.4.2 Wekaをコマンドラインで使いやすく
      3. 9.4.3 CSVとARFFの間の変換
      4. 9.4.4 3つのクラスタリングアルゴリズムの比較
    5. 9.5 SciKit-Learn Laboratoryによる回帰分析
      1. 9.5.1 データの準備
      2. 9.5.2 実験の実行
      3. 9.5.3 結果の解析
    6. 9.6 BigMLを使った分類
      1. 9.6.1 バランスの取れた訓練、テストデータセットの作成
      2. 9.6.2 API呼び出し
      3. 9.6.3 結果のチェック
      4. 9.6.4 今後の方向
    7. 9.7 参考文献
  15. 10章 総まとめ
    1. 10.1 復習しよう
    2. 10.2 3つのアドバイス
      1. 10.2.1 我慢強くあれ
      2. 10.2.2 創造的であれ
      3. 10.2.3 実践的であれ
    3. 10.3 ここからどうするか
      1. 10.3.1 シェルプログラミング
      2. 10.3.2 Python、R、SQL
      3. 10.3.3 データの解釈
    4. 10.4 連絡先
  16. 付録A コマンドラインツール一覧 (1/5)
  17. 付録A コマンドラインツール一覧 (2/5)
  18. 付録A コマンドラインツール一覧 (3/5)
  19. 付録A コマンドラインツール一覧 (4/5)
  20. 付録A コマンドラインツール一覧 (5/5)
  21. 付録B 日本語処理
    1. B.1 文字コードと関係して起こりがちな問題
    2. B.2 文字コードを変換する
    3. B.3 文字コードを推測する
    4. B.4 Nkfをインストールする
      1. B.4.1 Nkfで文字コードを推定する
    5. B.5 パーセントエンコーディングされた文字列を復元する
    6. B.6 文字列を正規化する
    7. B.7 まとめ
  22. 付録C ケーススタディ
    1. C.1 ReceReco(レシレコ)について
    2. C.2 データの獲得
    3. C.3 データクレンジング(1)-異常値の除去
    4. C.4 データクレンジング(2)-基礎集計と外れ値の除去
    5. C.5 まとめ
  23. 付録D 参考文献
  24. 索引 (1/2)
  25. 索引 (2/2)

Product information

  • Title: コマンドラインではじめるデータサイエンス ―分析プロセスを自在に進めるテクニック
  • Author(s): Jeroen Janssens, 太田 満久, 下田 倫大, 増田 泰彦, 長尾 高弘
  • Release date: September 2015
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873117416

You might also like

book

デザインスプリント ―プロダクトを成功に導く短期集中実践ガイド

by Richard Banfield, C. Todd Lombardo, Trace Wax, 安藤 幸央, 佐藤 伸哉, 牧野 聡

本書はGV(旧Google Ventures)およびGoogleで提唱しているデザイン思考「デザインスプリント」の概念とその手順を実践的に解説。デザインスプリントではプロダクトやサービスのアイデアを短時間で作り上げ、ユーザーに示して評価してもらい、アイデア創出からプロトタイピング、ユーザーテストと評価までをわずか5日間で完了させるためのプロセスが定められています。本書では組織でデザインスプリントを実践するために必要な事柄を紹介し、多くのリソースを投入する前にプロダクトやサービスのアイデアを検討し、チームメンバー、ステークホルダー、そしてユーザーを巻き込みながら短期間でより良いユーザー体験を作り上げる方法を伝授します。

book

プログラミング文体練習 ―Pythonで学ぶ40のプログラミングスタイル

by Cristina Videira Lopes, 菊池 彰

レーモン・クノーの『文体練習』から着想を得て執筆された本書は、1つの課題を異なるプログラミングスタイルで実装し、さまざまなスタイルの特性やスタイルが生まれた歴史的経緯などを解説します。本家の『文体練習』は、「バスの中で起きた諍いと、その張本人を後で目撃した」という内容を、公的文書風、宣伝風、業界用語風など、99の異なる文体で表現したものですが、本書は、「単語の出現頻度をカウントして多いものから出力する」という課題を、40のスタイルで実装しています。リソース制約が大きかった時代の方法から、オブジェクト指向、純粋関数型、リフレクション、並行処理、ニューラルネットワークまで幅広いスタイルを扱い、マルチパラダイム言語Pythonの威力と魅力を感じられる構成となっています。

book

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

by Ilya Grigorik, 和田 祐一郎/株式会社プログラミングシステム社

現代のアプリケーションエンジニアは、UIやデータ処理、開発言語、プラットフォームの仕様や癖だけでなく、サーバやネットワークについても、上から下まで、表から裏まで広く知ることを求められます。本書は「ブラウザ」に関連し、インターネットで使用されるさまざまなネットワーク技術をまとめたものです。HTTP/2.0やWebRTCなどの最新技術、WebSocketやXMLHttpRequestなどのブラウザAPI、そしてそれらの土台となるTCPやUDPやトランスポート層についてまでを幅広くカバーします。また改善前後の性能・速さを可能な限り具体化し、それぞれの場面においてのパフォーマンス改善幅を示します。

book

プロダクトマネジメント ―ビルドトラップを避け顧客に価値を届ける

by Melissa Perri, 吉羽 龍太郎

本書は、顧客に価値を届けるプロダクトを作り出すプロダクトマネジメントについて学ぶ本です。プロダクトマネジメントを理解することで、企業がビジネス目標を達成しながら、顧客の課題を解決する方法を解説します。はじめにプロダクトマネージャーの役割と責任を定義し、優れた意思決定を促す戦略の立て方を紹介します。実験と最適化によって作るべきプロダクトを決めるプロセスを解説し、最後にプロダクト主導の組織を支えるための文化や方針を紹介します。ビルドトラップを避け、顧客の課題にフォーカスするプロダクトマネジメントの原則を解説する本書は、規模の大小を問わずすべてのプロダクトチーム、マネージャー、プログラマ、アーキテクト、デザイナ、マーケターに必携の一冊です。