IoT, AI,機械学習 トピックス プログラム、シミュレーション

高次元の情報は次元を下げて解析

投稿日:

1週間以上前に「コードは短いが奥が深い」で、pythonを用いた手書き文字の認識を取り上げました。少し間が空いてしまいましたが、その続きです。 手書き文字データは、1文字で8×8=64ピクセルもの情報があり、64次元の空間に描く必要がありますが、3次元の世界では描くこともできません。そこで、主成分析という手法で次元を下げる必要があります。主成分分析については「分散が大きいと情報量は?」「ばらつきが大きい方が主に効く?」で説明しましたので、ご覧ください。 それでは、今回のプログラムコードを説明いたします。

資料はこちら → 機械学習5

p.1 64次元を3次元に減らすモジュールがscikit-learnの中にある「decomposition」です。3行目で読み込んでいます。decompositionの中にあるPCA(Principal Component Analysis:主成分分析)を用いて64次元から3次元に次元を減らします。 固有値の大きい方から3つとってきてx、y、及びz軸の座標にしていると思われます。 人が計算したら膨大になるものを一瞬で計算してくれるわけです。

p.2 Xrに格納された3次元の点を0~9の文字ごとに色別して3次元図にプロットするプログラムです。コードはこちら→ ml0603

p.3 実行結果です。 0と6と9あるいは1と7は近い距離にあることがわかりますが、上手く分離できていそうです。

手書きデータでも上手く色別できそうなことがイメージ図で理解できましたでしょうか?

-IoT, AI,機械学習, トピックス, プログラム、シミュレーション

Copyright© 進化するガラクタ , 2024 All Rights Reserved Powered by STINGER.