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

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

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

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

book

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

by Pete Goodliffe, 柴田 芳樹

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

book

PythonとJavaScriptではじめるデータビジュアライゼーション

by Kyran Dale, 嶋田 健志, 木下 哲也

Webからデータを取得して、効率よく整理、分析を行い効果的な可視化を実現するには、さまざまなツールとテクニックが必要です。 本書ではPythonとJavaScriptを使い分け、それぞれの言語の強みを最大限利用します。 PythonのBeautifulSoupとScrapyでデータを取得、pandas、Matplotlib、Numpyでデータ処理を行い、Flaskフレームワークを使ってデータを配信、JavaScriptのD3.jsを使ってインタラクティブなWeb可視化を実現します。データの収集からアウトプットまでの全体を視野に入れて解説しているので、実際にコードを追いながら、この一冊でデータ分析プロセスの全体像を理解できます。