Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Book description

Pythonの機械学習用ライブラリの定番、scikit-learnのリリースマネージャを務めるなど開発に深く関わる著者が、scikit-learnを使った機械学習の方法を、ステップバイステップで解説します。ニューラルネットを学ぶ前に習得しておきたい機械学習の基礎をおさえるとともに、優れた機械学習システムを実装し精度の高い予測モデルを構築する上で重要となる「特徴量エンジニアリング」と「モデルの評価と改善」について多くのページを割くなど、従来の機械学習の解説書にはない特長を備えています。

Table of contents

  1. 大扉
  2. 原書大扉
  3. クレジット
  4. まえがき
    1. 対象読者
    2. 本を書いた理由
    3. 本書の構成
    4. オンラインの資料
      1. 表記法
    5. コードサンプルの使い方
    6. 意見と連絡先
    7. 謝辞
      1. Andreasより
      2. Sarahより
  5. 1章 はじめに
    1. 1.1 なぜ機械学習なのか?
      1. 1.1.1 機械学習で解決可能な問題
      2. 1.1.2 タスクを知り、データを知る
    2. 1.2 なぜPythonなのか?
    3. 1.3 scikit-learn
      1. 1.3.1 scikit-learnのインストール
    4. 1.4 必要なライブラリとツール
      1. 1.4.1 Jupyter Notebook
      2. 1.4.2 NumPy
      3. 1.4.3 SciPy
      4. 1.4.4 matplotlib
      5. 1.4.5 pandas
      6. 1.4.6 mglearn
    5. 1.5 Python 2 vs. Python 3
    6. 1.6 本書で用いているバージョン
    7. 1.7 最初のアプリケーション:アイリスのクラス分類
      1. 1.7.1 データを読む
      2. 1.7.2 成功度合いの測定:訓練データとテストデータ
      3. 1.7.3 最初にすべきこと:データをよく観察する
      4. 1.7.4 最初のモデル:k-最近傍法
      5. 1.7.5 予測を行う
      6. 1.7.6 モデルの評価
    8. 1.8 まとめと今後の展望
  6. 2章 教師あり学習
    1. 2.1 クラス分類と回帰
    2. 2.2 汎化、過剰適合、適合不足
      1. 2.2.1 モデルの複雑さとデータセットの大きさ
    3. 2.3 教師あり機械学習アルゴリズム
      1. 2.3.1 サンプルデータセット
      2. 2.3.2 k-最近傍法
      3. 2.3.3 線形モデル
      4. 2.3.4 ナイーブベイズクラス分類器
      5. 2.3.5 決定木
      6. 2.3.6 決定木のアンサンブル法
      7. 2.3.7 カーネル法を用いたサポートベクタマシン
      8. 2.3.8 ニューラルネットワーク(ディープラーニング)
    4. 2.4 クラス分類器の不確実性推定
      1. 2.4.1 決定関数(Decision Function)
      2. 2.4.2 確率の予測
      3. 2.4.3 多クラス分類の不確実性
    5. 2.5 まとめと展望
  7. 3章 教師なし学習と前処理
    1. 3.1 教師なし学習の種類
    2. 3.2 教師なし学習の難しさ
    3. 3.3 前処理とスケール変換
      1. 3.3.1 さまざまな前処理
      2. 3.3.2 データ変換の適用
      3. 3.3.3 訓練データとテストデータを同じように変換する
      4. 3.3.4 教師あり学習における前処理の効果
    4. 3.4 次元削減、特徴量抽出、マニフォールド学習
      1. 3.4.1 主成分分析(PCA)
      2. 3.4.2 非負値行列因子分解(NMF)
      3. 3.4.3 t-SNEを用いた多様体学習
    5. 3.5 クラスタリング
      1. 3.5.1 k-Means Clustering
      2. 3.5.2 凝集型クラスタリング
      3. 3.5.3 DBSCAN
      4. 3.5.4 クラスタリングアルゴリズムの比較と評価
      5. 3.5.5 クラスタリング手法のまとめ
    6. 3.6 まとめと展望
  8. 4章 データの表現と特徴量エンジニアリング
    1. 4.1 カテゴリ変数
      1. 4.1.1 ワンホットエンコーディング(ダミー変数)
      2. 4.1.2 数値でエンコードされているカテゴリ
    2. 4.2 ビニング、離散化、線形モデル、決定木
    3. 4.3 交互作用と多項式
    4. 4.4 単変量非線形変換
    5. 4.5 自動特徴量選択
      1. 4.5.1 単変量統計
      2. 4.5.2 モデルベース特徴量選択
      3. 4.5.3 反復特徴量選択
    6. 4.6 専門家知識の利用
    7. 4.7 まとめと展望
  9. 5章 モデルの評価と改良
    1. 5.1 交差検証
      1. 5.1.1 scikit-learnでの交差検証
      2. 5.1.2 交差検証の利点
      3. 5.1.3 層化k分割交差検証と他の戦略
    2. 5.2 グリッドサーチ
      1. 5.2.1 単純なグリッドサーチ
      2. 5.2.2 パラメータの過剰適合の危険性と検証セット
      3. 5.2.3 交差検証を用いたグリッドサーチ
    3. 5.3 評価基準とスコア
      1. 5.3.1 最終的な目標を見失わないこと
      2. 5.3.2 2クラス分類における基準
      3. 5.3.3 多クラス分類の基準
      4. 5.3.4 回帰の基準
      5. 5.3.5 評価基準を用いたモデル選択
    4. 5.4 まとめと展望
  10. 6章 アルゴリズムチェーンとパイプライン
    1. 6.1 前処理を行う際のパラメータ選択
    2. 6.2 パイプラインの構築
    3. 6.3 パイプラインを用いたグリッドサーチ
    4. 6.4 汎用パイプラインインターフェイス
      1. 6.4.1 make_pipelineによる簡便なパイプライン生成
      2. 6.4.2 ステップ属性へのアクセス
      3. 6.4.3 GridSearchCV内のパイプラインの属性へのアクセス
    5. 6.5 前処理ステップとモデルパラメータに対するグリッドサーチ
    6. 6.6 グリッドサーチによるモデルの選択
    7. 6.7 まとめと展望
  11. 7章 テキストデータの処理
    1. 7.1 文字列として表現されているデータのタイプ
    2. 7.2 例題アプリケーション:映画レビューのセンチメント解析
    3. 7.3 Bag of Wordsによるテキスト表現
      1. 7.3.1 トイデータセットに対するBoW
      2. 7.3.2 映画レビューのBoW
    4. 7.4 ストップワード
    5. 7.5 tf–idfを用いたデータのスケール変換
    6. 7.6 モデル係数の調査
    7. 7.7 1単語よりも大きい単位のBag-of−Words (n-グラム)
    8. 7.8 より進んだトークン分割、語幹処理、見出し語化
    9. 7.9 トピックモデリングと文書クラスタリング
      1. 7.9.1 LDA(Latent Dirichlet Allocation)
    10. 7.10 まとめと展望
  12. 8章 おわりに
    1. 8.1 機械学習問題へのアプローチ
      1. 8.1.1 人間をループに組み込む
    2. 8.2 プロトタイプから運用システムへ
    3. 8.3 運用システムのテスト
    4. 8.4 独自Estimatorの構築
    5. 8.5 ここからどこへ行くのか
      1. 8.5.1 理論
      2. 8.5.2 他の機械学習フレームワークとパッケージ
      3. 8.5.3 ランキング、推薦システム、その他の学習
      4. 8.5.4 確率モデル、推論、確率プログラミング
      5. 8.5.5 ニューラルネットワーク
      6. 8.5.6 大規模データセットへのスケール
      7. 8.5.7 名誉を得る
    6. 8.6 結論
  13. 著者・訳者紹介
  14. 奥付

Product information

  • Title: Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
  • Author(s): Andreas C. Muller, Sarah Guido, 中田 秀基
  • Release date: May 2017
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873117980

You might also like

book

詳説 イーサネット 第2版

by Charles E. Spurgeon, Joann Zimmerman, 三浦 史光, 豊沢 聡

イーサネット技術についての解説書。本書では、ファーストイーサネットやギガビットイーサネットなどの従来技術だけでなく、10ギガ、40ギガ、100ギガビットなど最新のイーサネット仕様を詳しく解説します。また、全二重イーサネット、オートネゴシエーション、Power over Ethernet、Energy Efficient Ethernet、構造化ケーブリングシステム、スイッチを用いたネットワークの設計、ネットワーク管理、ネットワークのトラブルシューティングのテクニックなども解説します。ネットワークの設計、監視、保守、障害時対応までを網羅し、信頼性の高いネットワークの構築を支援します。

book

アルゴリズムクイックリファレンス 第2版

by George T. Heineman, Gary Pollice, Stanley Selkow, 黒川 利明, 黒川 洋

実用上、本当に速いコードを書くにはまず正しいアルゴリズムの選択から。本書は実践的側面を重視した、新しいタイプのアルゴリズム事典です。どのアルゴリズムを使うべきか、どう実装するのか、さらに性能を向上させる方法はあるのかを解説。主要な40余りのアルゴリズムを網羅し、C、C++、Java、Pythonでの実装例を示します。改訂版では、フォーチュンアルゴリズム、マージソート、マルチスレッドクイックソート、AVL平衡二分木、R木と四分木などの新たなアルゴリズムを追加。実際にベンチマークを取る手法も紹介した実際的、実践的な一冊です。

book

リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり

by Jez Humble, Joanne Molesky, Barry O'Reilly, 角 征典, 笹井 崇司, Eric Ries

新規事業を生み出し、顧客にすばやく価値を届けるには、それを支援する体制が必要です。本書は、あらゆるムダを省き、継続的に仮説検証を繰り返しながら、プロダクトやサービスを構築する「リーンスタートアップ」の手法を既存の企業に適用するための方法を説明します。市場環境や顧客ニーズの変化に対応し、イノベーションを加速させ、組織文化、ガバナンス、財務管理を最適化し続けるハイパフォーマンス組織になるための原則とパターンを、さまざまな成功企業のケーススタディとともに詳述します。

book

大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティス

by Piethein Strengholt, 村上 列

データ管理と統合が急速に進化する中、複雑で緊密に結合したアーキテクチャから、現代のビジネスに対応できる、より柔軟なデータアーキテクチャへの移行が求められます。 本書は、変化が激しい時代でも長期的に持続可能な方法で大規模なデータ管理を行い、さまざまなユースケースに対応できる統合アーキテクチャを紹介します。この統合アーキテクチャを構成する、膨大なデータ利用に向けた「読み出し専用データストアアーキテクチャ」、リアルタイムなアプリケーションのための「APIアーキテクチャ」、大容量のスループットを実現する「ストリーミングアーキテクチャ」を詳述します。また技術開発、法規制、プライバシーに関する懸念など、データ管理全体を説明し、データガバナンスとセキュリティ、マスターデータ管理、セルフサービスとデータマーケットプレイス、メタデータの重要性について解説します。 企業のデータ戦略にかかわる本書は、アーキテクトはもちろん、経営者、ガバナンスチーム、データ分析・エンジニアリングチーム必携の一冊です。