ゼロからはじめるデータサイエンス

―Pythonで学ぶ基本と実践

[cover photo]
TOPICS
Data Science , Database , Python
発行年月日
PRINT LENGTH
400
ISBN
978-4-87311-786-7
原書
Data Science from Scratch
FORMAT
PDF
Print
3,520円
この商品は品切れ再入荷未定です

本書は、データサイエンスも、プログラミングも最初から学んでみたい、という要望に応える、幅広いトピックをカバーしたデータサイエンスの入門書です。架空のソーシャルネットワーク運営企業、データサイエンス・スター社のデータサイエンティストとして、さまざまな課題を解決しながら、必要な知識とスキルを着実に積み上げていきます。Pythonプログラミングの基礎から線形代数、統計確率の基礎、回帰、機械学習、ナイーブベイズ、決定木、ニューラルネットワーク、自然言語処理、グラフ解析、リコメンドシステム、データベースとSQL、MapReduceまで、盛りだくさんの内容で、短時間でデータサイエンスの基本知識とPythonプログラミングのスキルを効率良く学ぶことができます。本書で使用したサンプルコードとデータはすべて著者のGitHubから取得可能です。
原書はPython 2ベースで執筆されていますが、日本語版では翻訳の際にPython 2とPython 3の両方で動作確認をしています。現在はほとんどの方がPython 3を使われるという前提で、コードのコメントを翻訳するという方針を取っていますが、Python 2ユーザが問題なく使えるように、注意点を巻末の付録にまとめています。
著者のGitHub ではPython 2とPython 3両方のコードが用意されていますので、自分の環境に適した方を選択して利用することが可能です。

目次

訳者まえがき
はじめに

1章 イントロダクション
    1.1 データに支配された世界
    1.2 データサイエンスとは
    1.3 仮想事例:データサイエンス・スター社にて
        1.3.1 キーコネクタを探せ
        1.3.2 知り合いかも?
        1.3.3 給与と経験値
        1.3.4 有料アカウント
        1.3.5 興味に関するあれこれ
        1.3.6 明日以降に向けて

2章 Python速習コース
    2.1 Python基礎
        2.1.1 Pythonの入手
        2.1.2 禅 of Python
        2.1.3 空白によるフォーマット
        2.1.4 モジュール
        2.1.5 算術演算
        2.1.6 関数
        2.1.7 文字列
        2.1.8 例外
        2.1.9 リスト
        2.1.10 タプル
        2.1.11 辞書
        2.1.12 集合
        2.1.13 実行順制御
        2.1.14 真偽
    2.2 上級 Python
        2.2.1 ソート
        2.2.2 リスト内包
        2.2.3 ジェネレータとイテレータ
        2.2.4 乱数
        2.2.5 正規表現
        2.2.6 オブジェクト指向プログラミング
        2.2.7 関数型ツール
        2.2.8 enumerate
        2.2.9 zipと引数展開
        2.2.10 argsとkwargs
        2.2.11 データサイエンス・スター社へようこそ!
    2.3 さらなる探求のために

3章 データの可視化
    3.1 matplotlib
    3.2 棒グラフ
    3.3 折れ線グラフ
    3.4 散布図
    3.5 さらなる探求のために

4章 線形代数
    4.1 ベクトル
    4.2 行列
    4.3 さらなる探求のために

5章 統計
    5.1 データの特徴を表す
        5.1.1 代表値
        5.1.2 散らばり
    5.2 相関
    5.3 シンプソンのパラドクス
    5.4 その他相関係数についての注意点
    5.5 相関関係と因果関係
    5.6 さらなる探求のために

6章 確率
    6.1 従属と独立
    6.2 条件付き確率
    6.3 ベイズの定理
    6.4 確率変数
    6.5 連続確率分布
    6.6 正規分布
    6.7 中心極限定理
    6.8 さらなる探求のために

7章 仮説と推定
    7.1 統計的仮説検定
    7.2 事例:コイン投げ
    7.3 信頼区間
    7.4 pハッキング
    7.5 事例:A/Bテストの実施
    7.6 ベイズ推定
    7.7 さらなる探求のために

8章 勾配下降法
    8.1 勾配下降法の考え方
    8.2 勾配の評価
    8.3 勾配を利用する
    8.4 最善の移動量を選択する
    8.5 1つにまとめる
    8.6 確率的勾配下降法
    8.7 さらなる探求のために

9章 データの取得
    9.1 stdinとstdout
    9.2 ファイルの読み込み
        9.2.1 テキストファイルの基礎
        9.2.2 区切り文字を使ったファイル
    9.3 Webスクレイピング
        9.3.1 HTMLとその解析
        9.3.2 事例:データに関するオライリーの書籍
    9.4 APIを使う
        9.4.1 JSON(そしてXML)
        9.4.2 認証の必要がないAPIを使う
        9.4.3 必要なAPIの探索
    9.5 事例:TwitterAPI
        9.5.1 認証の取得
    9.6 さらなる探求のために

10章 データの操作
    10.1 データの調査
        10.1.11 次元データの調査
        10.1.22 次元データ
        10.1.3 多次元データ
    10.2 データの整理と変換
    10.3 データの操作
    10.4 スケールの変更
    10.5 次元削減
    10.6 さらなる探求のために

11章 機械学習
    11.1 モデリング
    11.2 機械学習とは?
    11.3 過学習と未学習
    11.4 正確さ
    11.5 バイアス-バリアンストレードオフ
    11.6 特徴抽出と特徴選択
    11.7 さらなる探求のために

12章 k近傍法
    12.1 モデル
    12.2 事例:好みの言語
    12.3 次元の呪い
    12.4 さらなる探求のために

13章 ナイーブベイズ
    13.1 非常に単純なスパムフィルタ
    13.2 より高度なスパムフィルタ
    13.3 実装
    13.4 モデルの検証
    13.5 さらなる探求のために

14章 単純な線形回帰
    14.1 モデル
    14.2 勾配下降法
    14.3 最尤推定
    14.4 さらなる探求のために

15章 重回帰分析
    15.1 モデル
    15.2 最小二乗モデルへの追加前提
    15.3 モデルのあてはめ
    15.4 モデルの解釈
    15.5 あてはめの良さ
    15.6 余談:ブートストラップ
    15.7 回帰係数の標準誤差
    15.8 正則化
    15.9 さらなる探求のために

16章 ロジスティック回帰
    16.1 問題
    16.2 ロジスティック関数
    16.3 モデルの適用
    16.4 あてはめの良さ
    16.5 サポートベクタマシン
    16.6 さらなる探求のために

17章 決定木
    17.1 決定木とは
    17.2 平均情報量(エントロピー)
    17.3 分割のエントロピー
    17.4 決定木の生成
    17.5 ひとつにまとめる
    17.6 ランダムフォレスト
    17.7 さらなる探求のために

18章 ニューラルネットワーク
    18.1 パーセプトロン
    18.2 フィードフォワードニューラルネットワーク
    18.3 逆伝播誤差法(バックプロパゲーション)
    18.4 事例:キャプチャ(CAPTCHA)を無効化する
    18.5 さらなる探求のために

19章 クラスタリング
    19.1 アイディア
    19.2 モデル
    19.3 事例:オフラインミーティング
    19.4 kの選択
    19.5 事例:色のクラスタリング
    19.6 凝集型階層的クラスタリング
    19.7 さらなる探求のために

20章 自然言語処理
    20.1 ワードクラウド
    20.2 n-gramモデル
    20.3 文法
    20.4 余談:ギブスサンプリング
    20.5 トピックモデリング
    20.6 さらなる探求のために

21章 ネットワーク分析
    21.1 媒介中心性
    21.2 固有ベクトル中心性
        21.2.1 行列操作
        21.2.2 中心性
    21.3 有効グラフとページランク
    21.4 さらなる探求のために

22章 リコメンドシステム
    22.1 手作業によるキュレーション
    22.2 人気の高いものをお勧めする
    22.3 ユーザベース協調フィルタリング
    22.4 アイテムベース協調フィルタリング
    22.5 さらなる探求のために

23章 データベースとSQL
    23.1 表の作成(CLEATETABLE)と行の追加(INSERT)
    23.2 行の更新(UPDATE)
    23.3 行の削除(DELETE)
    23.4 行の問い合わせ(SELECT)
    23.5 グループ化(GROUPBY)
    23.6 並び替え(ORDERBY)
    23.7 結合(JOIN)
    23.8 サブクエリ
    23.9 インデックス
    23.10 クエリ最適化
    23.11 NoSQL
    23.12 さらなる探求のために

24章 MapReduce
    24.1 事例:単語のカウント
    24.2 MapReduceを使う理由
    24.3 一般的なMapReduce
    24.4 事例:近況更新の分析
    24.5 事例:行列操作
    24.6 余談:コンバイナ
    24.7 さらなる探求のために

25章 前進しよう、データサイエンティストとして
    25.1 IPython
    25.2 数学
    25.3 既存のライブラリを活用する
        25.3.1 NumPy25.3.2 pandas
        25.3.3 scikit-learn
        25.3.4 可視化
        25.3.5 R
    25.4 データの供給源
    25.5 データサイエンスを活用しよう
        25.5.1 Hacker News記事分類器
        25.5.2 消防車ランク
        25.5.3 固有Tシャツ
        25.5.4 データサイエンスを使って何をしますか?

付録A 日本語に関する補足
    A.1 本書のコード例と日本語コードについて
    A.2 和文対応のtokenize関数

索引