2011-02-13
■[Perl]perl-Algorithm-ComplementNB(complement naive Bayes)
最近は教師あり学習の分類器について調べている。そこで2年ほど前に話題になったcomplement naive BayesをPerlで実装した。コードは「y-tag/perl-Algorithm-ComplementNB - GitHub」にある。
Algorithm::ComplementNBは通常のnaive Bayesにおいてシンプルに補集合の頻度を用いたcomplement naive Bayes、Algorithm::TWCNBはオリジナルの論文に記されていたtransformed weight-normalized complemnt naive Bayesであり、こちらはTFやIDFの情報を用いたり、ドキュメントの長さで正規化したり、さらに対数をとって正規化を行ったりしている。
以下「Algorithm::NaiveBayes」とComplementNBおよびTWCNBを比較した。Algorithm::NaiveBayesのバージョンは0.04、CompelmentNBとTWCNBは0.01である。用いたデータは「Csmining Group」で公開されている「20 Newsgroups data set」と「R52 and R8 of Reuters 21578」。どちらもstemmedなものを用い、ComplementNBとTWCNBのスムージングパラメータであるalphaは1.0で計測した。評価指標はaccuracyである。
| NaiveBayes | ComplementNB | TWCNB | |
|---|---|---|---|
| 20Newsgroup | 0.810 | 0.824 | 0.835 |
| r8 | 0.961 | 0.951 | 0.941 |
| r52 | 0.869 | 0.877 | 0.868 |
結果としては、予想していたようなgainを得られなかった。ただし今回計測したのはaccuracyであり、precissionやrecallでは異なる傾向が見られるかもしれない。
以下、正解ラベルごとのaccuracyの結果である。
| 20Newsgroup | NaiveBayes | ComplementNB | TWCNB |
|---|---|---|---|
| alt.atheism | 0.749 | 0.727 | 0.740 |
| comp.graphics | 0.810 | 0.771 | 0.756 |
| comp.os.ms-windows.misc | 0.621 | 0.631 | 0.746 |
| comp.sys.ibm.pc.hardware | 0.735 | 0.740 | 0.763 |
| comp.sys.mac.hardware | 0.761 | 0.766 | 0.836 |
| comp.windows.x | 0.788 | 0.883 | 0.829 |
| misc.forsale | 0.662 | 0.628 | 0.772 |
| rec.autos | 0.934 | 0.927 | 0.916 |
| rec.motorcycles | 0.935 | 0.970 | 0.975 |
| rec.sport.baseball | 0.914 | 0.929 | 0.950 |
| rec.sport.hockey | 0.975 | 0.995 | 0.990 |
| sci.crypt | 0.952 | 0.972 | 0.975 |
| sci.electronics | 0.677 | 0.679 | 0.677 |
| sci.med | 0.854 | 0.922 | 0.889 |
| sci.space | 0.893 | 0.937 | 0.931 |
| soc.religion.christian | 0.945 | 0.940 | 0.940 |
| talk.politics.guns | 0.923 | 0.918 | 0.945 |
| talk.politics.mideast | 0.899 | 0.939 | 0.931 |
| talk.politics.misc | 0.581 | 0.568 | 0.529 |
| talk.religion.misc | 0.390 | 0.430 | 0.351 |
| all | 0.810 | 0.824 | 0.835 |
| r8 | NaiveBayes | ComplementNB | TWCNB |
|---|---|---|---|
| acq | 0.983 | 0.973 | 0.953 |
| crude | 0.967 | 0.975 | 0.917 |
| earn | 0.983 | 0.990 | 0.994 |
| grain | 0.600 | 0.600 | 0.700 |
| interest | 0.691 | 0.531 | 0.654 |
| money-fx | 0.943 | 0.839 | 0.793 |
| ship | 0.611 | 0.583 | 0.639 |
| trade | 0.947 | 0.947 | 0.773 |
| ALL | 0.961 | 0.951 | 0.941 |
| r52 | NaiveBayes | ComplementNB | TWCNB |
|---|---|---|---|
| acq | 0.984 | 0.974 | 0.950 |
| alum | 0.211 | 0.632 | 0.474 |
| bop | 0.111 | 0.000 | 0.000 |
| carcass | 0.000 | 0.000 | 0.000 |
| cocoa | 0.733 | 1.000 | 0.933 |
| coffee | 0.909 | 1.000 | 1.000 |
| copper | 0.385 | 0.846 | 0.692 |
| cotton | 0.111 | 0.889 | 0.667 |
| cpi | 0.588 | 0.353 | 0.353 |
| cpu | 0.000 | 0.000 | 0.000 |
| crude | 0.967 | 0.975 | 0.926 |
| dlr | 0.000 | 0.000 | 0.000 |
| earn | 0.983 | 0.989 | 0.994 |
| fuel | 0.000 | 0.000 | 0.000 |
| gas | 0.000 | 0.250 | 0.125 |
| gnp | 0.267 | 0.400 | 0.267 |
| gold | 0.550 | 0.850 | 0.550 |
| grain | 0.100 | 0.600 | 0.800 |
| heat | 0.000 | 0.000 | 0.250 |
| housing | 0.500 | 0.500 | 0.500 |
| income | 0.000 | 0.000 | 0.000 |
| instal-debt | 0.000 | 0.000 | 0.000 |
| interest | 0.667 | 0.543 | 0.679 |
| ipi | 0.455 | 0.000 | 0.091 |
| iron-steel | 0.083 | 0.250 | 0.250 |
| jet | 0.000 | 0.000 | 0.000 |
| jobs | 0.667 | 0.750 | 0.417 |
| lead | 0.000 | 0.000 | 0.000 |
| lei | 0.000 | 0.000 | 0.333 |
| livestock | 0.200 | 0.400 | 0.600 |
| lumber | 0.000 | 0.000 | 0.000 |
| meal-feed | 0.000 | 0.000 | 0.000 |
| money-fx | 0.943 | 0.839 | 0.839 |
| money-supply | 0.750 | 0.286 | 0.393 |
| nat-gas | 0.000 | 0.000 | 0.000 |
| nickel | 0.000 | 0.000 | 0.000 |
| orange | 0.444 | 0.667 | 0.778 |
| pet-chem | 0.167 | 0.167 | 0.167 |
| platinum | 0.000 | 0.000 | 0.000 |
| potato | 0.000 | 0.667 | 0.333 |
| reserves | 0.083 | 0.000 | 0.000 |
| retail | 0.000 | 0.000 | 0.000 |
| rubber | 0.333 | 0.778 | 0.778 |
| ship | 0.611 | 0.667 | 0.667 |
| strategic-metal | 0.000 | 0.000 | 0.000 |
| sugar | 0.880 | 0.960 | 0.960 |
| tea | 0.000 | 0.000 | 0.000 |
| tin | 0.000 | 0.800 | 0.600 |
| trade | 0.947 | 0.920 | 0.840 |
| veg-oil | 0.000 | 0.000 | 0.091 |
| wpi | 0.000 | 0.000 | 0.111 |
| zinc | 0.000 | 0.000 | 0.400 |
| ALL | 0.869 | 0.877 | 0.868 |
トラックバック - http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes
リンク元
- 11 https://www.google.co.jp/
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CF0QFjAA&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=T5HgT5XtBfDjmAWrwOCNDQ&usg=AFQjCNFZkJUsXYJmhMv7F2Pu7KKjyq5tRA&sig2=sSIoR8uZfLZFxcg-UPi76A
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CDcQFjAC&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=x7YfT5uPI9DjmAXJjYGhDg&usg=AFQjCNFZkJUsXYJmhMv7F2Pu7KKjyq5tRA&sig2=hqeQ7kBa-l9PPLkEhLD6fg
- 6 http://www.google.co.jp/url?sa=t&rct=j&q=complement naive bayes perl &source=web&cd=1&ved=0CB0QFjAA&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=N4_UTt-UGJDKmQWj6fBq&usg=AFQjCNFZkJUsXYJmhMv7F2Pu7KKjyq5tRA&si
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDcQFjAB&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=tgmyUIGpIs32mAXi-4CoAw&usg=AFQjCNFZkJUsXYJmhMv7F2Pu7KKjyq5tRA&sig2=h6uXI0VfpxmJdIL4YgavDQ
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=complement+naive+bayes+python&source=web&cd=2&ved=0CC0QFjAB&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=cb2LT_6yLoTXrQfT5rnOCw&usg=AFQjCNFZkJUsXYJmhMv7F2Pu7KKjyq5tRA
- 4 http://www.google.co.jp/url?sa=t&rct=j&q=perl+ナイーブベイズ+&source=web&cd=3&ved=0CD0QFjAC&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=RogkUZHDBcbxmAWa9IC4Bw&usg=AFQjCNFZ
- 3 http://www.google.co.jp/
- 3 http://www.google.co.jp/url?sa=t&rct=j&q=ナイーブベイズ perl&source=web&cd=4&sqi=2&ved=0CDwQFjAD&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=7hPDTpfmM8WfmQXU97igCw
- 3 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=2&ved=0CEAQFjAB&url=http://d.hatena.ne.jp/y_tag/20110213/complement_naive_bayes&ei=X9uLT9yjDYT8mAW20ayzCQ&usg=AFQjCNFZkJUsXYJmhMv7F2Pu7KKjyq5tRA
