内容紹介
データ分析と機械学習システムの実装を通して実践的な知識と技術を学ぶ!
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 まとめ
索引
続きを見る