タグ

ブックマーク / se-kichi.hatenadiary.org (3)

  • 現実逃避に多クラスロジスティック回帰のコードを書いた - きちめも

    春合宿の…スライドに…まだ手を付けていないッ…。 ・・・流石に何話すかとか話の流れとかは大体イメージできてる状態だが、いかんせん書く気が起きない。死ね俺。*1 ということで現実逃避に適当なコードを書いたの巻。 PRML4章の多クラスロジスティック回帰を殴り書きした。多クラスのIRLSの形がよー分からんというかもうめんどうなので直接ニュートンラフソン法で。 ・・・以下のコードだとパラメータの更新にヘッセ行列の対角ブロックの部分しか使ってない…んだけどこれでいいのか…?まぁでも結果上記の画像のようにそれっぽくなったのでもういいや状態。 標準入力からデータを読み込んで動作。 (x,y)がクラス2に属するなら"x y 0 0 1"みたいな感じの行が延々入力に続いてるとします。 信頼のコメント率!やる気の無い変数名!どうみても一週間で読めなくなります。 #!/usr/bin/python # -*-

    現実逃避に多クラスロジスティック回帰のコードを書いた - きちめも
  • SMO法でSVMの学習してみた - きちめも

    SMO法はPRMLに名前はあるけど詳細が無かったので、別の*1買ってきて読んで理解した気分になったのでコードを書いてみた。 コードはpythonで書いたのだが、アルゴリズム的に行列の計算が全く無かった。 実際に試した対象は学習データが200程度だったので、scipyとOpenOptで素直に2次計画問題を計算させた方が早かった気がしてもにょい。*2 データはPRMLのページからダウンロードしたものを使った。 今はRVMの節を読んでいる。まだ7章終わってない>ω<; #!/usr/bin/python # -*- coding: utf-8 -*- import sys import random from scipy import * from scipy.linalg import norm from scipy.io import read_array import matplotli

    SMO法でSVMの学習してみた - きちめも
  • OpenOpt使ってSVM書いた - きちめも

    追記(5/19):ガウスカーネル2乗してなかった。コード書き忘れ訂正--); ついでに画像も変更 SMO法使った前のエントリは、殆どpureにpythonでコード書いてたせいか、結構時間がかかっててイライラ。ということでOpenOptの二次計画のソルバー使って手抜きに疎な解を求めてみたの巻。 結果はテストデータ200個の↓の図だと200倍の差が…。scipy+OpenOptぱない コーディングもあっと言う間だし…その…何というか…一昨日の努力は…一体…。まぁデータ200個と少なきゃメモリにのるしね…。 以下適当に書いたpythonのコード。相変わらずグラフの描画とかのコードの筋が悪い気がしてもにょいぜ。 #!/usr/bin/python # -*- coding: utf-8 -*- from scipy import * from scipy.linalg import norm fr

    OpenOpt使ってSVM書いた - きちめも
  • 1