Python Machine Learning Ch5

前回 の続き

概要

第5章 次元削減でデータを圧縮する

前回は前処理についてざっくりと説明があった

この章は次元削減のみに絞って3つの手法を解説

  1. 主成分分析 PCA
  2. 線形判別分析 LDA
  3. カーネル主成分分析 による非線形次元削減

数学的な説明は式が意味不明だったのでがっつり飛ばした

5.1 主成分分析による教師なし次元削減

PCA: Principal Component Analysis

  • 様々な分野で広く使われている
  • 教師なし線形変換法
  • 主に次元削減タスクに用いられる
  • 特徴量同士の相関関係に基づいてデータからパターンを抽出するのに役立つ
  • 特徴量が異なる尺度で測定されていて、全特徴量に等しい重要度を割り当てたい場合は事前に標準化しておく必要がある

共分散

共分散の意味と簡単な求め方 | 高校数学の美しい物語

固有ベクトル, 固有値

【数学】固有値・固有ベクトルとは何かを可視化してみる - Qiita

5.2 線形判別分析による教師ありデータ圧縮

LDA: Linear Discriminant Analysis 線形判別分析

  • こっちは教師あり
  • 分類タスクだと PCA よりこっちが優秀なことが多い

ModuleNotFoundError: No module named 'sklearn.lda' となったので調べてみたら sklearn v0.19.1 では sklearn.discriminant_analysis.LinearDiscriminantAnalysis を使わないといけなかった。長い

ほとんど理解できなかった。

5.3 カーネル主成分分析を使った非線形写像

カーネルPCA (kernel PCA) を使って、線形分離できないデータを(線形分類器に適した)新しい低次元の部分空間へ射影する方法を見る

まずデータをより高次元の変換。この高次元空間では標準PCAを用い、より低次元の空間へ再び射影し、サンプルを線形分類器で分類できるようにする

そのままやると計算コストがでかくなるので、「カーネルトリック」を使い計算量を減らす

Contents