
- Week8
- クラスタリング (Clustering)
- K平均法 (K-Means Algorithm)
- 目的関数の最適化 (Optimization Objective)
- 無造作初期化 (Random Initialization)
- クラスタの数を選択する (Choosing the Number of Clusters)
- 動機づけ (Motivation)
- PCA - 主成分分析 (Principal Component Analysis)
- PCAの問題定式化 (Principal Component Analysis Problem Formulation)
- PCAのアルゴリズム (Principal Component Analysis Alogrithm)
- PCAの適用 (Applying PCA)
[機械学習]
Week8
この章から教師なし学習を使っていく。ボリュームがありそうだ。
…と思ったら案外簡単にクリアできた。
クラスタリング (Clustering)
K平均法 (K-Means Algorithm)
- Wikipedia - K平均法
- 詳しくはWikipediaを見て欲しい
目的関数の最適化 (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次元で表すことができる。
特徴値を で表すとして、次元削除されたものは
で表す。
動機づけ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) ) があるとする。
- データの前処理
-
で行列μを作成する
- それぞれの要素xをxとμの差分で置き換える
-
- PCAのアルゴリズム
- 分散共分散行列(covariance matrix)を計算する
-
- Octaveだとsvd関数が用意されているのでそれを使う
// Sigmaは対象のデータセットを表す行列をそれぞれ2乗して 1/m 倍したもの [U, S, V] = svd(Sigma); // 次元削除されたデータをUから取り出してUreduceと置く。kは取得する次元。 Ureduce = U(:,1:k); // 次元削除したデータセットzは、Ureduceの転置行列と元の行列の積で求められる z = Ureduce’ * x;