【Python】標準偏差をもとに特徴を正規化する
PRML TALK #2 を開催しました。
今日はPRML TALK #2やりました。特徴の正規化、超平面の容量、主成分分析とかの基礎部分あたりを。次回はk-NN法とか誤差の話かな!
— 凸(とつ) Yuta Totsuka (@totu_iy) 2015, 2月 27
ということで毎回の習慣として例題か演習問題で解いた問題を実際にプログラムにしてみてます。
今回は4つの2次元ベクトル(それぞれ2つの特徴をもつ4つのサンプルデータ)に対してパターンの認識の前処理として正規化を行ってそれぞれの特徴を偏りなく使えるようにする感じです。
ソースは以下。
book_speaking-system/normalizer.py at master · totzYuta/book_speaking-system · GitHub
- show(): そのベクトルを単に表示する
- normalize(): 正規化したベクトルを返します
- plot(): もとのベクトルと正規化したベクトルをmatplotlibを使ってプロットします
今回はそれぞれの特徴の標準偏差が1になるように正規化してます。
インタラクティブシェルで実行してみると
▶ python -i normalizer.py >>> v = Vector([[3, 2], [3, 4], [5, 4], [5, 6]]) >>> v.show() [[3, 2], [3, 4], [5, 4], [5, 6]] >>> v.normalize() normalizing... [[3.0, 1.414213562373095], [3.0, 2.82842712474619], [5.0, 2.82842712474619], [5.0, 4.242640687119285]] >>> v.plot() ploting... normalizing...
みたいな感じになります。オブジェクト指向で書こうとがんばってるのですがオブジェクト指向多分ちゃんと理解できてない+Pythonちゃんと理解できてないでコードがまずことになってそう。。。笑
見てくれた方アドバイスいただけたら本当に嬉しいです。
第三回はk-NN法など認識部分やる予定!