9章特徴量抽出による次元削減

レシピ9.0 はじめに

 特徴量の数が、数千、数十万になることは珍しくない。例えば、8章 画像の取り扱いでは、256×256ピクセルのカラー画像を196,608特徴量に変換した。さらに、個々のピクセルが256の値を取るので、1つの観測値が256196608通りの値を取りうることになる。実際に得られる観測値は、この組み合わせのごく一部ということになり、学習アルゴリズムが正しく動作するために十分なデータがないということになってしまう。これは問題だ。

 幸い、すべての特徴量が等しく価値を持つわけではない。次元削減による特徴量抽出の目的は、もとの特徴量集合poriginalの持つ情報をなるべく維持したまま変換し、| poriginal |>| pnew |となるような特徴量集合pnewを作ることだ。言い換えると、データの高品質な予測を生成する能力を維持したまま、特徴量の数を減らすことが目的だ。本章では、これを実現するさまざまな次元削減手法を紹介する。

 特徴量抽出手法の問題点は、新しく作られる特徴量が、人間が理解できないものになることだ。新しい特徴量は、モデルを訓練する機能の面では、もとの特徴量と同等かわずかに劣る程度だが、人間の目には、ランダムな値にしか見えない。人間が解釈しやすいモデルが必要ならば、特徴量選択による次元削減を用いたほうがよい。

レシピ9.1 主成分を用いた特徴量削減

問題

 特徴量の集合に対して、データの分散を保ったまま特徴量の数を減らしたい。

解決策

 主成分分析を用いる。これには、scikit-learnのPCAを使う。

# ライブラリをロード from sklearn.preprocessing import StandardScaler ...

Get Python機械学習クックブック now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.