Lisp楽しい
学部3年で情報工学科のLisp授業にもぐってから苦節3年(その間ほとんど触ってないけれど),ようやくLispでプログラムが書けるようになってとても楽しい.
今日やったことまとめ(時系列順)
- 距離関数をかりかり書きまくる
- 構造体の存在に気がつく.ちょっとした機械学習プログラム書けるんじゃねと思う
- とりあえずファイルを読み込んでインスタンス情報を保持する部分書く
- CSVファイル(元々ARFFファイル)の属性の順番変更するプログラム
- 書き出しのときにつまづく.結局join関数を自作
- さっき書いた距離関数を使って1-NNで分類する関数を書く
- train.datから訓練データ読み込んで,test.datのインスタンスを分類,正答率を返す関数を書く
- ちゃんと動いた!!
例によってirisデータを自分で分割してやったけれど,この調子だとcross-validationもできるっぽい.これなら新B4の講習レベルですな.って,興味ある人いないよなぁ...
もう少し整えれば,分類器部分だけを変えれば色々できる環境がつくれる.
Lispは関数ごとに分割される.常にモジュールに分割するようなイメージで書けるから書いていて達成感があるし,疲れないし,楽しい.
ずっとJavaコーディングしているときはなんて冗長なんだろう(ロジックを書くときね.オブジェクト指向は便利です.やっぱり)と思っていたけれど,こりゃPerlですら冗長だと思うようになってくる.
とりあえず今やりたいことは,長さが等しいリストをふたつ同時になめて処理するロジックをどうにかすること.特徴ベクトルの比較(内積取ったり,距離計算したり)するときに使いたいけれど,現状あまり綺麗じゃないので.