実践 機械学習システム

[cover photo]
TOPICS
Programming , Data Science , Database , Python
発行年月日
PRINT LENGTH
288
ISBN
978-4-87311-698-3
原書
Building Machine Learning Systems with Python
FORMAT
Print PDF
Ebook
3,520円
Ebookを購入する
Print
3,520円

本書は、実際に手を動かしながらシステムを作成し、そのエッセンスを身につけることを目的とした機械学習システムの実践的な解説書です。「データといかに向き合うか」という視点から、生のデータからパターンを見つける方法を解説します。Pythonと機械学習の基本、ライブラリの使い方をはじめ、具体的な例に基づいたデータセット、モデル化、レコメンドと、その改良、音声や画像の処理など、より重要な問題についても解説します。さらに、テキストや画像、音声に対して機械学習の手法を適用する方法を学び、機械学習関連技術の評価方法や、最適な選択を行うための比較方法について学びます。本書で学んだツールと知識があれば、実際の問題を解決できる独自のシステムを作成できるようになるでしょう。

目次

謝辞
原書の監修者について
はじめに

1章  Pythonではじめる機械学習
    1.1 機械学習と Pythonはドリームチーム
    1.2 本書が扱う内容(そして、扱わない内容)
    1.3 困ったときは
    1.4 はじめに
        1.4.1 NumPy、SciPy、Matplotlib入門
        1.4.2 インストール方法
        1.4.3 NumPy、SciPyによる効率的なデータ操作
        1.4.4 NumPy入門
        1.4.5 SciPy入門
    1.5 はじめての(簡単な)機械学習アプリケーション
        1.5.1 データを読み込む
        1.5.2 前処理とデータ整形
        1.5.3 正しいモデルの選択と機械学習
    1.6 まとめ

2章 実例を対象とした分類法入門
    2.1 アイリスデータセット
        2.1.1 可視化からはじめる
        2.1.2 はじめての分類モデル作成
    2.2 さらに複雑なクラス分類器の作成
    2.3 より複雑なデータセットとクラス分類
        2.3.1 種(たね)データセットを学習する
        2.3.2 特徴量と特徴エンジニアリング
        2.3.3 最近傍法
    2.4 二項分類と多項分類
    2.5 まとめ

3章 クラスタリング:関連のある文書を見つける
    3.1 文書の関連性を計測する
        3.1.1 やってはいけないこと
        3.1.2 どうやるべきか
    3.2 前処理:共通する単語の出現回数を類似度として計測する
        3.2.1 テキストデータを bag-of-wordに変換する
        3.2.2 単語を数える
        3.2.3 単語の出現回数ベクトルを正規化する
        3.2.4 重要度の低い単語を取り除く
        3.2.5 ステミング(stemming)
        3.2.6 TF-IDFを用いる
        3.2.7 ここまでやってきたこと
    3.3 クラスタリング
        3.3.1 KMeans
        3.3.2 テストデータを用いて評価を行う
        3.3.3 文書のクラスタリング
    3.4 最初の問題に対する答え
        3.4.1 ノイズに対する別の見方
    3.5 パラメータの調整
    3.6 まとめ

4章 トピックモデル
    4.1 潜在的ディリクレ配分法(LDA)
        4.1.1 トピックモデルの作成
    4.2 トピック空間で類似度の比較を行う
        4.2.1 Wikipedia全体のモデル化
    4.3 トピックの数を選択する
    4.4 まとめ

5章 クラス分類:悪い回答を判別する
    5.1 本章のロードマップ
    5.2 良い回答を分類する
        5.2.1 データの表現方法
        5.2.2 使用する分類器
    5.3 データを用意する
        5.3.1 実験サイクルを早めるためにデータサイズを削減する
        5.3.2 必要な属性の選別
        5.3.3 良い回答を定義する
    5.4 最初の分類器を作成する
        5.4.1 k近傍法からスタートする
        5.4.2 特徴量について模索する
        5.4.3 分類器の訓練を行う
        5.4.4 分類器の評価を行う
        5.4.5 より多くの特徴量をデザインする
    5.5 改善案について考える
        5.5.1 バイアス -バリアンスのトレードオフ
        5.5.2 バイアスが大きい場合の対処法
        5.5.3 バリアンスが大きい場合の対処法
        5.5.4 バイアスは大きい?小さい?
    5.6 ロジスティック回帰を用いる
        5.6.1 ロジスティック回帰の簡単な例
        5.6.2 ロジスティック回帰を今回の問題に適用する
    5.7 適合率と再現率
    5.8 分類器を“スリム”にする
    5.9 完成!
    5.10 まとめ

6章 クラス分類 II:感情分析
    6.1 本章のロードマップ
    6.2 ツイートデータを取得する
    6.3 ナイーブベイズ分類器の紹介
        6.3.1 ベイズ定理入門
        6.3.2 ナイーブにする
        6.3.3 ナイーブベイズを用いて分類を行う
        6.3.4 新出単語への対応
        6.3.5 アンダーフローへの対応
    6.4 最初の分類器を作成し、調整を行う
        6.4.1 簡単な問題を最初に解く
        6.4.2 全てのクラスを対象とする
        6.4.3 分類器のパラメータを調整する
    6.5 ツイートを整形する
    6.6 単語の種類を考慮する
        6.6.1 単語の種類を決める
        6.6.2 SentiWordNetを活用する
        6.6.3 最初の推定器
        6.6.4 全てを総合する
    6.7 まとめ

7章 回帰:レコメンド
    7.1 回帰を用いて物件価格を予測する
        7.1.1 多次元回帰
        7.1.2 回帰における交差検定
    7.2 罰則付き回帰
        7.2.1 L1、L2罰則項
        7.2.2 scikit-learnのLassoとElastic netを使用する
    7.3 PがNより大きい場合
        7.3.1 テキストに基づいたサンプルデータ
        7.3.2 ハイパラメータの賢い設定方法
        7.3.3 レーティング予測とレコメンド
    7.4 まとめ

8章 回帰:レコメンドの改良
    8.1 推薦システムを改良する
        8.1.1 二値行列を用いたレコメンド
        8.1.2 類似映画について考える
        8.1.3 複数の手法を組み合わせる
    8.2 バスケット分析
        8.2.1 役立つ予測を行う
        8.2.2 スーパの買い物かごを分析する
        8.2.3 アソシエーション・ルール・マイニング
        8.2.4 進んだバスケット分析
    8.3 まとめ

9章 クラス分類 III:音楽ジャンル分類
    9.1 本章のロードマップ
    9.2 音楽データを取得する
        9.2.1 WAVフォーマットに変換する
    9.3 音楽を見る
        9.3.1 音楽をサイン波に分解する
    9.4 FFTを用いて最初の分類器を作成する
        9.4.1 機敏に実験する
        9.4.2 分類器の訓練を行う
        9.4.3 混同行列を用いて多クラス問題の正解率を計測する
        9.4.4 ROC曲線によるクラス分類器の評価方法
    9.5 メル周波数ケプストラム係数を用いて分類器を改良する
    9.6 まとめ

10章 コンピュータビジョン:パターン認識
    10.1 画像処理入門
    10.2 画像の読み込みと表示
        10.2.1 基本的な画像処理
        10.2.2 ソルト&ペッパーノイズを加える
        10.2.3 パターン認識
        10.2.4 画像から特徴量を計算する
        10.2.5 自分で特徴量を設計する
    10.3 より難しいデータセットを分類する
    10.4 局所特徴量による記述
    10.5 まとめ

11章 次元削減
    11.1 本章のロードマップ
    11.2 特徴選択
        11.2.1 冗長な特徴をフィルター法を用いて検出する
        11.2.2 ラッパー法を用いて、特徴量についてモデルに尋ねる
    11.3 他の特徴選択手法
    11.4 特徴抽出
        11.4.1 主成分分析(PCA)
        11.4.2 PCAの限界と LDA
    11.5 多次元尺度構成法(MDS)
    11.6 まとめ

12章 ビッグデータ
    12.1 ビッグデータ入門
    12.2 jugを使って、一連の処理をタスクに分割する
        12.2.1 タスクについて
        12.2.2 部分的な結果を再利用する
        12.2.3 内部で行われていること
        12.2.4 データ分析のために jugを使用する
    12.3 AWSを使用する
        12.3.1 初めてのマシンを作成する
        12.3.2 starclusterでクラスタの生成を自動化する
    12.4 まとめ

付録 機械学習についてさらに学ぶために
    A.1 オンラインコース
    A.2 書籍
        A.2.1 Q&Aサイト
        A.2.2 ブログ
        A.2.3 データソース
        A.2.4 コンペに参加する
    A.3 本書でカバーできなかったこと
    A.4 まとめ

索引