機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

2次元の点群にフィットする直線を求める - 主成分分析

はじめに

本記事ではアイデアのみ残しておきます。
計算過程などは参考リンクをご覧ください。

要件

点群は \{{\bf x}_n\in{\mathbb R}^2\}_{n=1}^N とします。
直線の通過点を {\bf x}_G\in{\mathbb R}^2 とします。特に指定がない場合は {\bf x}_G を点群の重心としてください。
要件は「点群 \{{\bf x}_n\}_{n=1}^N にフィットする {\bf x}_G を通る直線を見つけること」です。

アルゴリズム

以下の行列 {\bf M}\in{\mathbb R}^{2\times 2} の最大固有値 \lambda_1 に対応する固有ベクトルが求める直線の方向ベクトル {\bf v}_1となる。

\begin{eqnarray}
{\bf M}=\sum_{n=1}^N({\bf x}_n-{\bf x}_G)({\bf x}_n-{\bf x}_G)^\top\tag{1}
\end{eqnarray}

通過する位置ベクトル {\bf x}_G と方向ベクトル {\bf v}_1 が定まったので、要件を満たす直線が求まりました。

目次へ戻る