2017-06-11〜18 やったことと振り返り

他人の振り返りBlogを購読しているおかげで思い出した。

目次

主成分分析のための固有値分解

主成分分析についてはわかっていたけど、なぜそれが固有値分解?という前回の疑問を調べた。わかっていたけど、と書いたが固有値分解にいたるまでの数式としての定義を知らなかったので、それはもうわかっていないのでは。

固有値ってなんだから始まる知らないこと

そもそもの始まりは、A行列 * xベクトル = スカラー * xベクトル

こんなのあったなぁという感想から。 このようになるベクトルを固有ベクトルといい、スカラー固有値固有値が負なら向きは変わるがベクトルは変わらない。

といろいろ調べていると、知らない・理解していないことが湧いてきた。

  • 行列式が0とは
  • 複素行列
  • エルミート行列
  • 随伴行列
  • ユニタリ行列

主成分分析は、変換後の分散を最大化することが動機になっている。変換後 = データ行列 * ベクトル。 変換後の分散の式を展開すると、分散共分散行列が現れる。またベクトルは、大きさが1のベクトルにすることで無数にあるベクトルを限定しつつ、ラグランジュの未定乗数法で解けるようになっていた。

特異値分解

その後numpyを使って固有値分解を使って求めた固有ベクトルによる変換を試した。 結果があっているか知りたかったので、scikit-learnのPCA実装を見ると固有値分解を使っていなく、SVDを使っていた(´・ω・`)

ただし、固有値分解を覚えたことで主成分分析の根本について知ることはできたのでここで留める。

AtCoder ABCの継続(できなかった

忘れてた

面談

今の現場以外で働くようになりそうだが、スキルが足りない。特に基本的な分析知識とそれを実際に使った経験。

課題

  • 忘れやすい
  • 現在関係ないことを深追いしすぎて、時間を浪費している

対策

  • 忘れないことはできないので、忘れても気づける状況をTODOist等で作る
  • 時間の浪費を防ぐため、ここまで理解する・理解すればよい範囲を決める
  • 分析手法と、それを適用する適切な理解。結果の解釈を行う。そのためにコンペを見つける