目的
とりあえずどれぐらいでできるものかベンチマークとしてやってみる.
既存
ナイーブベイズ分類器の実装とか 〜畑さん/こだまさん問題〜 - naoya_t@hatenablog
ナイーブベイズ分類器の実装とか(その2)〜新アルバムの楽曲で畑さん/こだまさん分類器を試してみた〜 - naoya_t@hatenablog
データ
作詞家 | データ数 |
---|---|
大森祥子 | 126曲 |
森由里子 | 176曲 |
こだまさおり | 187曲 |
くまのきよみ | 200曲 |
畑亜貴 | 377曲 |
この5クラス分類に取り組む.
特徴量は歌詞に含まれる名詞/動詞/形容詞の頻度.
モデル
普通にSVM.
LIBSVM -- A Library for Support Vector Machines
SVM実践ガイド (A Practical Guide to Support Vector Classification) - 睡眠不足?!を読みつつgrid.pyを使う.スケーリングは[-1, 1]でやると「スパースだから[0, 1]でやれや」と教えてくれるので[0, 1]でやる.
設定
データを3分割,1/3をtest,2/3をtrainにしてtrainは5-fold cross validation.都合3つのモデルができる.
結果
まずは学習.
python ./tools/grid.py ../../data/libsvm/song_all.tsv_train_1.scale
512.0 0.00048828125 71.669
python ./tools/grid.py ../../data/libsvm/song_all.tsv_train_2.scale
2048.0 3.0517578125e-05 68.7237
python ./tools/grid.py ../../data/libsvm/song_all.tsv_train_2.scale
2048.0 0.0001220703125 74.4741
だいたい7割ぐらい.
続いて予測.
./svm-predict ../../data/libsvm/song_all.tsv_test_1.scale song_all.tsv_train_1.scale.model result1
Accuracy = 76.4873% (270/353) (classification)
./svm-predict ../../data/libsvm/song_all.tsv_test_2.scale song_all.tsv_train_2.scale.model result2
Accuracy = 80.17% (283/353) (classification)
./svm-predict ../../data/libsvm/song_all.tsv_test_2.scale song_all.tsv_train_2.scale.model result3
Accuracy = 75.6374% (267/353) (classification)
こちらもだいたい7から8割で予測できている.
誰をどう間違ったかの表も貼る.
モデル1
predict/ans | 畑亜貴 | くまのきよみ | こだまさおり | 森由里子 | 大森祥子 |
---|---|---|---|---|---|
畑亜貴 | 121 | 15 | 14 | 10 | 15 |
くまのきよみ | 1 | 50 | 2 | 5 | 1 |
こだまさおり | 1 | 1 | 41 | 2 | 1 |
森由里子 | 2 | 0 | 4 | 40 | 7 |
大森祥子 | 0 | 0 | 1 | 1 | 18 |
モデル2
predict/ans | 畑亜貴 | くまのきよみ | こだまさおり | 森由里子 | 大森祥子 |
---|---|---|---|---|---|
畑亜貴 | 114 | 9 | 8 | 13 | 9 |
くまのきよみ | 7 | 54 | 2 | 3 | 4 |
こだまさおり | 1 | 1 | 51 | 1 | 0 |
森由里子 | 3 | 2 | 1 | 40 | 5 |
大森祥子 | 0 | 0 | 0 | 1 | 24 |
モデル3
predict/ans | 畑亜貴 | くまのきよみ | こだまさおり | 森由里子 | 大森祥子 |
---|---|---|---|---|---|
畑亜貴 | 121 | 15 | 19 | 14 | 13 |
くまのきよみ | 4 | 49 | 2 | 3 | 0 |
こだまさおり | 0 | 0 | 36 | 0 | 0 |
森由里子 | 0 | 2 | 5 | 40 | 8 |
大森祥子 | 0 | 0 | 0 | 1 | 21 |
その他
パラメータの解釈とか特徴語の話とかは今度やる.