トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Coursera 機械学習 - Week8

[機械学習]

Week8

この章から教師なし学習を使っていく。ボリュームがありそうだ。

…と思ったら案外簡単にクリアできた。

  クラスタリング (Clustering)

K平均法 (K-Means Algorithm)

目的関数の最適化 (Optimization Objective)

無造作初期化 (Random Initialization)

クラスタの数を選択する (Choosing the Number of Clusters)

  動機づけ (Motivation)

PCAをやっていくのはなぜか?その動機づけについて説明

動機づけI: データ圧縮 (Motivation I: Data Compression)

例えば特徴値x1 (= 正方形の辺の長さ), x2 (= 正方形の面積)というものがあるとする。x1, x2はそれぞれ x1^2 = x2 と表すことができる。つまり、2次元あった特徴値を1次元に削減できる。

同じような理由と方法で、3次元のデータを2次元で表すことができる。

特徴値を x%5Fn で表すとして、次元削除されたものは z%5Fn+で表す。

動機づけII: 見える化 (Motivation II: Visualization)

次元削除されたデータzをさらにグラフでプロットし直すという話。

  PCA - 主成分分析 (Principal Component Analysis)

PCAの問題定式化 (Principal Component Analysis Problem Formulation)

PCAは線形回帰ではない、ということ。

PCAのアルゴリズム (Principal Component Analysis Alogrithm)

トレーニングセット X ( x(1), x(2), ..., x(m) ) があるとする。

  • データの前処理
    • %5Cmu%5Fj+%3D+%5Cfrac%7B1%7D%7Bm%7D+%5Csum%5F%7Bi%3D1%7D%5Em+x%5Fj%5E%7B%28i%29%7D+ で行列μを作成する
    • それぞれの要素xをxとμの差分で置き換える
  • PCAのアルゴリズム
    • 分散共分散行列(covariance matrix)を計算する
    • %5CSigma+%3D+%5Cfrac%7B1%7D%7Bm%7D+%5Csum%5F%7Bi%3D1%7D%5En+%28x%5E%7B%28i%29%7D%29%28x%5E%7B%28i%29%7D%29%5ET+
  • Octaveだとsvd関数が用意されているのでそれを使う
// Sigmaは対象のデータセットを表す行列をそれぞれ2乗して 1/m 倍したもの
[U, S, V] = svd(Sigma);

// 次元削除されたデータをUから取り出してUreduceと置く。kは取得する次元。
Ureduce = U(:,1:k);

// 次元削除したデータセットzは、Ureduceの転置行列と元の行列の積で求められる
z = Ureduce’ * x;

  PCAの適用 (Applying PCA)

圧縮された状態からのデータ再構築 (Reconstruction from Compressed Representation)

PCAの要素数を選択する (Choosing the Number of Principal Components)

PCAを適用する場合のアドバイス (Advice for Applying PCA)

お名前: コメント: