機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践

Book description

本書は、機械学習モデルの性能を向上させるために、データから良い特徴量を作る特徴量エンジニアリングについて解説します。前半では初学者に向けて、数値、テキスト、カテゴリ変数の基本的な取り扱い方を説明し、後半では特徴量ハッシング、ビンカウンティング、PCAによるデータの圧縮、さらに非線形特徴量とモデルスタッキング、画像特徴量抽出と深層学習による自動特徴学習などの高度なテーマを扱います。特徴量エンジニアリングを使いこなし、機械学習モデルの性能を最大限に引き出したいエンジニア必携の一冊です。

Table of contents

  1.  大扉
  2.  クレジット
  3.  日本語版に寄せて
  4.  訳者まえがき
  5.  はじめに
  6.  1章 機械学習パイプライン
  7.   1.1 データ
  8.   1.2 タスク
  9.   1.3 モデル
  10.   1.4 特徴量
  11.   1.5 モデル評価
  12.  2章 数値データの取り扱い
  13.   2.1 スカラ/ベクトル/ベクトル空間
  14.   2.2 カウントデータの取り扱い
  15.    2.2.1 二値化
  16.    2.2.2 離散化
  17.   2.3 対数変換
  18.    2.3.1 対数変換の実行
  19.    2.3.2 べき変換:対数変換の一般化
  20.   2.4 スケーリングと正規化
  21.    2.4.1 Min-Maxスケーリング
  22.    2.4.2 標準化(分散スケーリング)
  23.    2.4.3 \ell^2正規化
  24.   2.5 交互作用特徴量
  25.   2.6 特徴選択
  26.   2.7 まとめ
  27.   2.8 参考文献
  28.  3章 テキストデータの取り扱い
  29.   3.1 Bag-of-X:テキストを数値ベクトルで表現する
  30.    3.1.1 Bag-of-Words
  31.    3.1.2 Bag-of-n-Grams
  32.   3.2 特徴選択のための単語除去
  33.    3.2.1 ストップワードによる単語除去
  34.    3.2.2 頻度に基づく単語除去
  35.    3.2.3 ステミング(語幹処理)
  36.   3.3 言葉の最小単位:単語からnグラム、そしてフレーズへ
  37.    3.3.1 パース処理とトークン化
  38.    3.3.2 フレーズ検出のためのコロケーション抽出
  39.   3.4 まとめ
  40.   3.5 参考文献
  41.  4章 特徴量スケーリングによる効果:Bag-of-WordsのTF-IDFによる重み付け
  42.   4.1 TF-IDF:Bag-of-Wordsに対するシンプルな変換方法
  43.   4.2 TF-IDFを試す
  44.    4.2.1 クラス分類用のデータセット作成
  45.    4.2.2 TF-IDF変換を用いたBag-of-Wordsのスケーリング
  46.    4.2.3 ロジスティック回帰によるクラス分類
  47.    4.2.4 正則化によるロジスティック回帰のチューニング
  48.   4.3 深堀り:何が起こっているのか?
  49.   4.4 まとめ
  50.   4.5 参考文献
  51.  5章 カテゴリ変数の取り扱い
  52.   5.1 カテゴリ変数のエンコーディング
  53.    5.1.1 One-Hotエンコーディング
  54.    5.1.2 ダミーコーディング
  55.    5.1.3 Effectコーディング
  56.    5.1.4 カテゴリ変数のエンコーディング方法の長所と短所
  57.   5.2 膨大なカテゴリ数を持つカテゴリ変数の取り扱い
  58.    5.2.1 特徴量ハッシング
  59.    5.2.2 ビンカウンティング
  60.   5.3 まとめ
  61.   5.4 参考文献
  62.  6章 次元削減:膨大なデータをPCAで圧縮
  63.   6.1 直感的な解釈
  64.   6.2 導出
  65.    6.2.1 線形射影
  66.    6.2.2 分散と経験分散
  67.    6.2.3 PCA:はじめの一歩の定式化
  68.    6.2.4 PCA:行列とベクトルによる定式化
  69.    6.2.5 主成分分析の一般的な解法
  70.    6.2.6 特徴量の変換
  71.    6.2.7 PCAの実装
  72.   6.3 PCAの実行
  73.   6.4 白色化とZCA
  74.   6.5 PCAの考察と限界
  75.   6.6 ユースケース
  76.   6.7 まとめ
  77.   6.8 参考文献
  78.  7章 非線形特徴量の生成:k-meansを使ったスタッキング
  79.   7.1 k-means
  80.   7.2 パッチで覆うためのクラスタリング
  81.   7.3 k-meansによるクラス分類用の特徴量生成
  82.    7.3.1 密なクラスタ特徴量
  83.   7.4 メリット/デメリット/注意事項
  84.   7.5 まとめ
  85.   7.6 参考文献
  86.  8章 特徴量作成の自動化:画像特徴量の抽出と深層学習
  87.   8.1 最も単純な画像特徴量――そしてこの特徴量が機能しない理由
  88.   8.2 手動の特徴抽出法:SIFTおよびHOG
  89.    8.2.1 画像勾配
  90.    8.2.2 勾配方向ヒストグラム
  91.    8.2.3 SIFT
  92.   8.3 深層学習を用いた画像特徴量の学習
  93.    8.3.1 全結合層
  94.    8.3.2 畳み込み層
  95.    8.3.3 Rectified Linear Unit(ReLU)変換
  96.    8.3.4 応答正規化層
  97.    8.3.5 プーリング層
  98.    8.3.6 AlexNetの構造
  99.   8.4 まとめ
  100.   8.5 参考文献
  101.  9章 バック・トゥ・ザ・「フィーチャー」:学術論文レコメンドアルゴリズムの構築
  102.   9.1 アイテムベースの協調フィルタリング
  103.   9.2 解析第1回:データインポート/クリーニング/特徴量の解析
  104.    9.2.1 学術論文レコメンドエンジン:テイク1――単純なアプローチ
  105.   9.3 解析第2回:より技術的に洗練されたスマートなモデル
  106.    9.3.1 学術論文レコメンドエンジン:テイク2
  107.   9.4 解析第3回:より多くの特徴量がさらなる情報をもたらす
  108.    9.4.1 学術論文レコメンドエンジン:テイク3
  109.   9.5 まとめ
  110.   9.6 参考文献
  111.  付録A 線形モデリングと線形代数の基礎
  112.   A.1 線形分類の概要
  113.   A.2 行列の解剖学
  114.    A.2.1 ベクトルから部分空間へ
  115.    A.2.2 特異値分解(SVD)
  116.    A.2.3 データ行列の4つの基本的な部分空間
  117.    A.2.4 線形システムの解法
  118.   A.3 参考文献
  119.  著者紹介
  120.  奥付

Product information

  • Title: 機械学習のための特徴量エンジニアリング ―その原理とPythonによる実践
  • Author(s): Alice Zheng, Amanda Casari, 株式会社ホクソエム
  • Release date: February 2019
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118680

You might also like

book

ウェブ最適化ではじめる機械学習 ―A/Bテスト、メタヒューリスティクス、バンディットアルゴリズムからベイズ最適化まで

by 飯塚 修平

ウェブサービスの開発に携わるかぎり、ユーザにより良い体験を提供することは無視できない命題です。本書は、ウェブサービスを成長させることを目的に、ユーザの行動を定量的に評価し、改善する手法を学ぶ書籍です。 シンプルなA/B テストを第一歩に、線形モデルの導入、メタヒューリスティクス、バンディットアルゴリズム、ベイズ最適化と、機械学習の知識を紹介しながら、ウェブサイトを最適化するという現実的な問題を解くための数理的な手法を解説します。 Pythonによるサンプルコードと、グラフィカルな図版で表現された数学的なモデルを組み合わせ、機械学習と統計学の基礎を丁寧に解説しています。ウェブ最適化の手法を学びたい、機械学習の基礎を知りたい読者に最適の1冊です。

book

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

by Andreas C. Muller, Sarah Guido, 中田 秀基

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

book

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

by Martin Kleppmann, 斉藤 太郎, 玉川 竜司

現代の分散システム設計においてデータの扱いは重要な課題です。本書は、データを処理し、保存するさまざまなテクノロジーの特性を詳述することで、ツールの長所と短所を理解し、システムの課題と使用するアプリケーションに適した選択肢の発見を助けます。本書では、データの量や複雑さ、変化が課題となるアプリケーションを「データ指向」と名づけ、データ指向アプリケーションの設計を支える基本的な概念を解説します。そしてレプリケーション、パーティション、トランザクションなど分散データベースについて扱い、さらにバッチ処理、ストリーム処理など、データセットの取り出しや結合について解説します。

book

PythonによるAIプログラミング入門 ―ディープラーニングを始める前に身につけておくべき15の基礎技術

by Prateek Joshi, 相川 愛三

近年ディープラーニングが爆発的人気となっています。しかし、人工知能の手法はディープラーニングに限りません。過去のAIブームの単純なニューラルネットや論理プログラミングもあれば、遺伝的アルゴリズム、自然言語処理、音声信号処理や、画像からの動物体検出、分類問題、回帰問題、連続データ解析、強化学習といった、古典的なデータ解析や機械学習の手法もあります。これらはディープラーニングを始める前に身につけておくべき基礎技術です。「鶏を割くに焉んぞ牛刀を用いん」の諺のように、読者がデータ収集や計算コストがかかるディープラーニングの他にも適材適所の手法を選択できるよう、本書ではさまざまな人工知能の関連分野を扱いながら、Pythonでよく使われるライブラリの基本的な使い方を解説します。