機械学習のための特徴量エンジニアリング ―その原理と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

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

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

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

book

詳説 イーサネット 第2版

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

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

book

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

by Piethein Strengholt, 村上 列

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

book

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

by Pete Goodliffe, 柴田 芳樹

本書は、優れたコードを作りだし、人々と効率的に働く生産性の高いプログラマになるための考え方とテクニックを38のテーマで紹介します。個人的な活動として、継続的な学習方法と停滞を避けるための課題の見つけ方など、自らを成長させる方法も紹介。さらに組織の中で他の人とコミュニケーションを取りながら、効果的に働くための習慣を解説します。『Code Craft』の著者Pete Goodliffeが、自らの経験を元に「優れたプログラマ」になるための考え方と習慣をまとめた本書は、プログラミングを愛し、長く続けながら、優れたプログラマになりたいと思うすべての人に必携の一冊です。