学習結果のRecallとPrecision

7月くらいから機械学習を使って、辞書うんぬんなことをやり始めなんとかそれっぽい(専門用語らしき、ということ)のが出てくるようになってきた。11月くらいからは半教師あり学習の一番簡単そうなのでやってみようということで、ollをライブラリとして使ってできるようにしていた。で、半教師あり学習には色々なパラメータがあって、パラメータの調整をしたいと思ったので、RecallとPrecisionをはかってみることにした。いや、それ以前からはかってろよっていう話なんですが、それ以前ははかるまでもなくだめぽな感じだったのです。。。

そんなわけで、学習用のデータとテスト用のデータと分けてRecallとPrecisionの散布図を書いてみました。PrecisionとRecallはトレードオフの関係にあり、散布図を書くと弓を引いたような(?)形になるのが特徴的です。今回はスコアが高いデータのラベルを更新して、というのを何回やるかで色を分けて書いてみました。0回というのは半教師あり学習をやっていないということをあらわしているので、回数を重ねるごとに線が上のほうに上がってくればしめたものです。で、実験の結果はこんな感じ。
Quartz 2 [*]
書くためのRのコードも自分のために貼っておく。

d0 <- read.csv("result_iteration_0.txt", header=FALSE)
d5 <- read.csv("result_iteration_5.txt", header=FALSE)
d10 <- read.csv("result_iteration_10.txt", header=FALSE)
d30 <- read.csv("result_iteration_30.txt", header=FALSE)

d <- cbind(c(rep("0", 26), rep("5", 26), rep("10", 26), rep("30", 26)), rbind(d0, d5, d10, d30))
names(d) <- c("iteration", "PN", "intersection", "precision", "recall", "f_value")

library(ggplot2)
q <- ggplot(d, aes(x = recall, y = precision, group = iteration))
q <- q + geom_line(aes(colour = iteration))
print(q)

右側でぴょこっと上がっているのは食わせているデータが少なめだからっぽいです。増やせばいいんだけど、実験環境をまだ整えてないので、やってない。それ以外は大体欲しい感じになっていて

  • 半教師ありをやるとPrecisionが向上している
  • Iterationを繰り返すたびに、向上率のしかたはゆっくりになっていく
    • これを使って打ち切りとかを判定すればよいかしら

という感じ。とりあえずよくなっていてよかったw。

ちなみにスコアの上位にきている単語はこんな感じでございます。あとはこれの質を保ちつつ、量を増やすというお仕事。

細胞分画法	8.46596
培養癌細胞	7.89082
培養細胞	7.78426
核蛋白質	7.17816
蛋白質脱燐酸化酵素	6.96944
比活性	6.78486
1本鎖DNA	6.516915
発癌遺伝子	6.32906
細胞分化	6.32343
染色体地図	6.28645
トリ白血病ウイルス	6.12237
オルニチン脱炭酸酵素	6.12233
固定化酵素	6.07065
インフルエンザウイルス	6.01618
制限酵素地図	5.92241
筋細胞	5.897485
DNA結合蛋白質	5.88384
抗イディオタイプ抗体	5.82196
腎癌	5.80055
筋芽細胞	5.70738
細胞	5.64997239130435
接合型遺伝子	5.64012
塩濃度	5.59004
尿酸	5.54249
グルコース酸化酵素	5.54083
細胞系	5.51228
グリコーゲン合成酵素	5.48843
培養	5.46144888888889
細胞骨格蛋白質	5.43786
高蛋白食	5.40708
免疫学者	5.36823
リン酸	5.32091
B細胞性リンパ腫	5.27692
腺癌	5.25465
結合基	5.24646
体細胞	5.22743
悪性新生物	5.20003
β構造	5.14912
細胞膜	5.07559
比誘電率	5.06102
抗血清	5.037985
内膜	5.01512
グルタミン合成酵素	5.01069
細胞質	5.0033925
脂肪細胞	4.99671
膜蛋白質	4.99669
電気泳動	4.99373
神経細胞	4.987162
染色体	4.972425
キラーT細胞	4.93157
免疫反応	4.92997
細胞変性	4.925945
血清	4.92484333333333
ピロリン酸	4.90203
2本鎖RNA	4.88663
β受容体	4.87833
活性部位	4.87178
測定法	4.86485
ウイルス遺伝子	4.855365
正リン酸	4.84625
肝細胞	4.82902
細胞融合	4.78871
細胞毒	4.75405
免疫沈降法	4.75045
アスパラギン酸キナーゼ	4.65178
ユビキチン活性化酵素	4.64754
蛋白質分解酵素	4.604535
細胞株	4.586938
酵素反応	4.58531
免疫応答	4.57986
細胞障害性	4.57149
抗原結合部位	4.53133
栄養細胞	4.52587
DNA配列	4.52045
小胞体	4.5143
遺伝子	4.49815923076923
分子量	4.49076933333333
酸性ムコ多糖	4.4868
T細胞	4.482355
線維肉腫	4.47556
細胞壁	4.43832
糖蛋白質	4.42771916666667
ミオシン軽鎖	4.41745
ピリドキサルリン酸	4.40167
ギ酸	4.40156
細胞増殖	4.399405
肝癌	4.38728666666667
燐酸化反応	4.36685