Ch.1~2 機械学習パイプライン&数値データの取り扱い|『機械学習のための特徴エンジニアリング入門』読書メモ #1

f:id:lib-arts:20190323154628p:plain

たまには軽い本でも取り扱えればということで、最近話題になっていた「機械学習のための特徴エンジニアリング入門」の読解メモについてまとめられればと思います。

O'Reilly Japan - Pythonではじめる機械学習
AutoMLのドキュメントを読んでいた際に似たようなトピックが色々と出てきたので知識の整理にもちょうど良さそうです。簡単な要約や言葉の整理などを中心にざっと流していければと思います。(流し読みしているので大まかな論旨しか追っていません)
#1では1章の機械学習パイプラインと数値データの取り扱いについてまとめられればと思います。
以下目次になります。
1. 機械学習パイプライン(Ch.1)
2. 数値データの取り扱い(Ch.2)
3. まとめ

 

1. 機械学習パイプライン(Ch.1)
・データ(1.1)
「普段データと呼んでいるものは、現実の世界で起こった現象を観測/保存したものを意味する」とされています。

・タスク(1.2)
データを元に解く対象をタスクとしているようです。

・モデル(1.3)
データなどを通して現実世界を再構築することを数理モデリング(mathematical model)や統計モデリングの考え方だとされています。モデルは数式(mathematial fomulas)で表現することができ、実際の観測データと数式をつなぐものとして特徴量という概念が出てくるとされています。

・特徴量(1.4)
特徴量(feature)はデータを数値として表現したものとされています。教師あり学習のインプットと捉えておくと良いかと思います。また、特徴量を作成することを特徴量エンジニアリング(feature engineering)と呼んでいるとされています。

・モデル評価(1.5)
どのモデルを使うかや特徴量の取捨選択を行うにあたってモデルの評価を行うとされています。

・章のまとめ
基本概念が多かったためざっと流しました。


2. 数値データの取り扱い(Ch.2)
・冒頭部分
数値データを扱う際にまず確認すべき内容として値に意味があるかについて言及されています。粒度にも注意を払う必要があり、場合によっては二値化や離散化によって数値データを変換するとされています。また、範囲についてはスケール(桁が違う際に注意)を考えるとされています。

・スカラ/ベクトル/ベクトル空間(2.1)
量を表すスカラと向きも合わせ持ったベクトル、またベクトルで張られた空間をベクトル空間とされています。

・カウントデータの取り扱い(2.2)
二値化、離散化について書かれています。離散化は固定幅による離散化や分位数による離散化が書かれています。それぞれ定義域で離散化するのと、データの数(%)で離散化するのとで考えていれば良さそうです。

・対数変換(2.3)
対数変換は生の数値データが裾の思い分布を持つ場合に強力な武器となるとされています。要は外れ値による影響を数字のオーダーで見ることで減らすことができるということです。

・スケーリングと正規化(2.4)
Min-Maxスケーリング、標準化、l^2正規化などについて言及されています。

・交互作用特徴量(2.5)
複数の特徴量を組み合わせて新たな特徴量を作成するテクニックを交互作用特徴量が紹介されています。

・特徴選択(2.6)
有用でない特徴量を取り除くことでモデルの複雑さを軽減する手法として特徴選択(feature selection)が紹介されています。特徴量選択は3つのタイプに分類され、フィルタ法、ラッパー法、組み込み法の三つが紹介されています。それぞれフィルタ法は閾値を使って有用でないと思われる特徴量を除去する方法(説明変数と目的変数の相関などの値が閾値を下回った場合はその説明変数を用いない)、ラッパー法はモデルの精度を調べることで変数の有用性を調べる方法、組み込み法は決定木のようにモデルの学習プロセスに特徴量選択が組み込まれていることとされています。


3. まとめ
基本概念が多かった印象なので、キーワードだけ抑えて全体的に軽く流しました。