機械学習のための特徴量エンジニアリング

―その原理とPythonによる実践

[cover photo]
TOPICS
Data Science , Database , Python
発行年月日
PRINT LENGTH
224
ISBN
978-4-87311-868-0
原書
Feature Engineering for Machine Learning
FORMAT
Print PDF EPUB
Ebook
3,300円
Ebookを購入する
Print
3,300円

本書は、機械学習モデルの性能を向上させるために、データから良い特徴量を作る特徴量エンジニアリングについて解説します。
前半では初学者に向けて、数値、テキスト、カテゴリ変数の基本的な取り扱い方を説明し、後半では特徴量ハッシング、ビンカウンティング、PCAによるデータの圧縮、さらに非線形特徴量とモデルスタッキング、画像特徴量抽出と深層学習による自動特徴学習などの高度なテーマを扱います。
特徴量エンジニアリングの原理について直感的な理解が得られるように図や例を豊富に使い、またPythonコードによる実行例を数多くあげて解説しており、実際の業務に適用するための具体的な知識が得られます。
特徴量エンジニアリングを使いこなし、機械学習モデルの性能を最大限に引き出したいエンジニア必携の一冊です。Kaggle GrandmasterのKohei Ozaki(@smly)氏による「日本語版に寄せて」を収録しています。

関連ファイル

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表


第1刷までの修正
2019年2月27日更新

■2章 P.16 下から6行目
誤:y軸は両方とも対数化
正:y軸は対数化

■2章 P.21 上から1行目
誤:結果が良くない
正:性能が良くない

■2章 P.35 下から9行目
誤:2つ以上の特徴量
正:複数の特徴量

■6章 P.103 式6-2
誤:z = XT v
正:z = X v

■8章 P.145 図8-7
誤:OUTPUT 入力  INPUT 出力
正:OUTPUT 出力  INPUT 入力


第2刷までの修正
2019年3月4日更新

■1章 P.2 上から5行目
誤:トムソン/ロイター
正:トムソン・ロイター

■2章 P.20 上から11行目
誤:クロスバリデーションを使用して、R^2スコアの推定値だけでなく分散も計算します。分散は2つのモデルを比較するときにR^2スコアの違いに意味があるかどうかを判断するのに役立ちます。
正:クロスバリデーションを使用して、R^2スコアの推定値だけでなくばらつきも計算します。ばらつきは2つのモデルを比較するときにR^2スコアの違いに意味があるかどうかを判断するのに役立ちます。

■付録A P.186 上から2つ目のパラグラフ
誤:ここで、行列Uの列は入力空間の正規直交基底に、行列Vの列は出力空間の正規直交基底になります。
正:ここで、行列Uの列は出力空間の正規直交基底に、行列Vの列は入力空間の正規直交基底になります。


第3刷までの修正
2019年5月23日更新

■9章 P.165 例9-5のキャプション「アイテムベース協調フィルタリングによる類似論文のレコメンド」に訳注を追加。
†訳注:“for i in top_results.index.tolist()[-3:]:“のコード内で表示する論文数を制限しているため、類似スコアが高い文献が1つ表示されていません。

■9章 P.168 例9-6のキャプション「固定幅のビン分割とダミーコーディング」に訳注を追加。
†訳注:例9-6と例9-7のキャプション「固定幅のビン分割とダミーコーディング」は、原著のlegendが “Fixed-width binning + dummy coding” となっており、これをそのまま訳出した結果です。同じ章でone-hotエンコーディングを利用している例9-13の原著legendでは “One-hot encoding” と記述があったため、原著者はone-hotエンコーディング、ダミーコーディングを使い分ける意図があった可能性があります。しかし、5章で解説されているone-hotエンコーディング、ダミーコーディングの定義からすると例9-7で利用されているのは「one-hotエンコーディング」と言えます。

■9章 P.171 例9-9の8行目
誤:... 1 - cosine_similarity(features_matrix[index:index+1],
正:... cosine_similarity(features_matrix[index:index+1],

■9章 P.171 例9-10の30行目(P.171の下から2行目)「Based on the paper:」からP.172の例9-9の最後までを以下に変更。
Based on the paper:
Paper index =  2
Title : Should endometriosis be an indication for intracytoplasmic sperm inject ...
Year : 2015
Abstract : nan
Authors : [{'name': 'Jovana P. Lekovich', 'org': 'Weill Cornell Medical College, ...

Top 3 results: 
1 . Paper index =  12673
Similarity score:  1.0
Title : Correlations of Portal Pressure In Benign Biliary Stricture
FOS : nan
Year : 2014
Abstract : nan
Authors : [{'name': 'Hirdaya Nag', 'org': 'G B Pant Hospital and MAM College, ... 

2 . Paper index =  18108
Similarity score:  1.0
Title : PET imaging of angiogenesis in murine hindlimb ischemia with a ... 
FOS : nan
Year : 2013
Abstract : nan
Authors : [{'name': 'Hakan Orbay'}, {'name': 'Yin Zhang'}, {'name': 'Timothy A. ... 

3 . Paper index =  14439
Similarity score:  1.0
Title : Innovation Framework for Generating Biogas and Electricity from Biogas
FOS : nan
Year : 2011
Abstract : nan
Authors : [{'name': 'Elke Bruns', 'org': 'Technische Universität Berlin (Berlin  ... 

■9章 P.172の本文。P.172の中ほど。
誤:正直に言うと、この段階では特徴量選択がうまくいっているとは思えません。これは対象とした特徴量に欠損値があるためです。
正:出版年、研究分野の特徴量エンジニアリングによりいくつかの論文が推薦されましたが、これらの特徴量には欠損値があるため、満足する結果ではないかもしれません。

■9章 P.175 例9-14の2行目「Based on the paper:」からP.176の例9-14の最後までを以下に変更。
Based on the paper:
Paper index =  2
Title : Should endometriosis be an indication for intracytoplasmic sperm inject ... 
FOS : nan
Year : 2015
Abstract : nan
Authors : [{'name': 'Jovana P. Lekovich', 'org': 'Weill Cornell Medical College, ... 

Top 3 results: 
1 . Paper index =  0
Similarity score:  0.13608276348795434
Title : System and Method for Maskless Direct Write Lithography
FOS : ['Electronic engineering', 'Computer hardware', 'Engineering', 'Engineering drawing']
Year : 2015
Abstract : A system and method for maskless direct write lithography are disclosed. ... 
Authors : nan 

2 . Paper index =  1
Similarity score:  0.13608276348795434
Title : The dilemma of the Mycobacterium avium subspecies paratuberculosis infection ... 
FOS : ['Biology', 'Virology', 'Immunology', 'Microbiology']
Year : 2016
Abstract : nan
Authors : [{'name': 'Ahmed M. Alluwaimi'}] 

3 . Paper index =  9
Similarity score:  0.03681050869161551
Title : Lasing from Top-Down Gallium Nitride Nanowires.
FOS : nan
Year : 2012
Abstract : nan
Authors : [{'name': 'Jeremy B. Wright'}, {'name': 'George T. Wang'}, {'name': 'Weng Wah ... 


第3刷までの修正
2019年10月10日更新

■9章 P.170 例9-8の2行目
誤:>>> print(‘Our hashed numpy array, in bytes: ’, getsizeof(X_fos))
正:>>> print(‘Our hashed numpy array, in bytes: ’, X_fos.nbytes)

■はじめに p. xii 「本書の読み方」の最初のパラグラフの最後から2文目
誤:数学的に正しく記述するするために数式も提示しています。
正:数学的に正しく記述するために数式も提示しています。

目次

日本語版に寄せて
訳者まえがき
はじめに

1章 機械学習パイプライン
    1.1 データ
    1.2 タスク
    1.3 モデル
    1.4 特徴量
    1.5 モデル評価

2章 数値データの取り扱い
    2.1 スカラ/ベクトル/ベクトル空間
    2.2 カウントデータの取り扱い
        2.2.1 二値化
        2.2.2 離散化
    2.3 対数変換
        2.3.1 対数変換の実行
        2.3.2 べき変換:対数変換の一般化
    2.4 スケーリングと正規化
        2.4.1 Min-Maxスケーリング
        2.4.2 標準化(分散スケーリング)
        2.4.3 ℓ2正規化
    2.5 交互作用特徴量
    2.6 特徴選択
    2.7 まとめ
    2.8 参考文献

3章 テキストデータの取り扱い
    3.1 Bag-of-X:テキストを数値ベクトルで表現する
        3.1.1 Bag-of-Words
        3.1.2 Bag-of-n-Grams
    3.2 特徴選択のための単語除去
        3.2.1 ストップワードによる単語除去
        3.2.2 頻度に基づく単語除去
        3.2.3 ステミング(語幹処理)
    3.3 言葉の最小単位:単語からnグラム、そしてフレーズへ
        3.3.1 パース処理とトークン化
        3.3.2 フレーズ検出のためのコロケーション抽出
    3.4 まとめ
    3.5 参考文献

4章 特徴量スケーリングによる効果:Bag-of-WordsのTF-IDFによる重み付け
    4.1 TF-IDF:Bag-of-Wordsに対するシンプルな変換方法
    4.2 TF-IDFを試す
        4.2.1 クラス分類用のデータセット作成
        4.2.2 TF-IDF変換を用いたBag-of-Wordsのスケーリング
        4.2.3 ロジスティック回帰によるクラス分類
        4.2.4 正則化によるロジスティック回帰のチューニング
    4.3 深堀り:何が起こっているのか?
    4.4 まとめ
    4.5 参考文献

5章 カテゴリ変数の取り扱い
    5.1 カテゴリ変数のエンコーディング
        5.1.1 One-Hotエンコーディング
        5.1.2 ダミーコーディング
        5.1.3 Effectコーディング
        5.1.4 カテゴリ変数のエンコーディング方法の長所と短所
    5.2 膨大なカテゴリ数を持つカテゴリ変数の取り扱い
        5.2.1 特徴量ハッシング
        5.2.2 ビンカウンティング
    5.3 まとめ
    5.4 参考文献

6章 次元削減:膨大なデータをPCAで圧縮
    6.1 直感的な解釈
    6.2 導出
        6.2.1 線形射影
        6.2.2 分散と経験分散
        6.2.3 PCA:はじめの一歩の定式化
        6.2.4 PCA:行列とベクトルによる定式化
        6.2.5 主成分分析の一般的な解法
        6.2.6 特徴量の変換
        6.2.7 PCAの実装
    6.3 PCAの実行
    6.4 白色化とZCA
    6.5 PCAの考察と限界
    6.6 ユースケース
    6.7 まとめ
    6.8 参考文献

7章 非線形特徴量の生成:k-meansを使ったスタッキング
    7.1 k-means
    7.2 パッチで覆うためのクラスタリング
    7.3 k-meansによるクラス分類用の特徴量生成
        7.3.1 密なクラスタ特徴量
    7.4 メリット/デメリット/注意事項
    7.5 まとめ
    7.6 参考文献

8章 特徴量作成の自動化:画像特徴量の抽出と深層学習
    8.1 最も単純な画像特徴量――そしてこの特徴量が機能しない理由
    8.2 手動の特徴抽出法:SIFTおよびHOG
        8.2.1 画像勾配
        8.2.2 勾配方向ヒストグラム
        8.2.3 SIFT
    8.3 深層学習を用いた画像特徴量の学習
        8.3.1 全結合層
        8.3.2 畳み込み層
        8.3.3 Rectified Linear Unit(ReLU)変換
        8.3.4 応答正規化層
        8.3.5 プーリング層
        8.3.6 AlexNetの構造
    8.4 まとめ
    8.5 参考文献

9章 バック・トゥ・ザ・「フィーチャー」:学術論文レコメンドアルゴリズムの構築
    9.1 アイテムベースの協調フィルタリング
    9.2 解析第1回:データインポート/クリーニング/特徴量の解析
        9.2.1 学術論文レコメンドエンジン:テイク1――単純なアプローチ
    9.3 解析第2回:より技術的に洗練されたスマートなモデル
        9.3.1 学術論文レコメンドエンジン:テイク2
    9.4 解析第3回:より多くの特徴量がさらなる情報をもたらす
        9.4.1 学術論文レコメンドエンジン:テイク3
    9.5 まとめ
    9.6 参考文献

付録A 線形モデリングと線形代数の基礎
    A.1 線形分類の概要
    A.2 行列の解剖学
        A.2.1 ベクトルから部分空間へ
        A.2.2 特異値分解(SVD)
        A.2.3 データ行列の4つの基本的な部分空間
        A.2.4 線形システムの解法
    A.3 参考文献

索引