44
Jubatusにおける機械学習の テスト 株式会社Preferred Infrastructure 海野 裕也 (@unnonouno) 2014/06/06 Machine Learning Casual Talks@Cookpad

Jubatusにおける機械学習のテスト@MLCT

Embed Size (px)

DESCRIPTION

 

Citation preview

  • 1. Jubatus Preferred Infrastructure (@unnonouno) 2014/06/06Machine Learning Casual Talks@Cookpad

2. @unnonouno l () Preferred Infrastructure l Jubatus l l 2 3. l Jubatus l Jubatus 3 4. Jubatus (http://jubat.us/) l l l l 4 5. Jubatus 5 msgpack-rpc 6. l l msgpack-rpc l l l l l l l l jubatus_core 6 7. l l l l l l 7 8. l l l l l l 8 9. l l l l l l 9 10. 10 11. 3 l l l 11 12. 12(1, 1)(-1, -1)1 13. l Perceptron l 95% l Passive Aggressive l 97 l Confidence Weighted l 98% l AROW l 98% l NHERD l 70% 13 14. 14 15. 15 16. 2 1 70 16 17. Crammer 17initialize w, " for (x, y) in data:" #m = y (xw)" #if m < e:" # #w := w + yx" # #update " l l e, , 18. 18 19. 19void normal_herd::update( const common::sfv_t& sfv, float margin, float variance, const string& pos_label, const string& neg_label) { for (common::sfv_t::const_iterator it = sfv.begin(); it != sfv.end(); ++it) { // storage_->set2(feature, pos_label, storage::val2_t(pos_val.v1 + (1.f - margin) * val_covariance_pos / (val_covariance_pos * val + 1.f / C), 1.f / ((1.f / pos_val.v2) + (2 * C + C * C * variance) * val * val))); if (neg_label != "") { storage_->set2(feature, neg_label, storage::val2_t(neg_val.v1 + (1.f - margin) * val_covariance_neg / (val_covariance_neg * val + 1.f / C), 1.f / ((1.f / neg_val.v2) + (2 * C + C * C * variance) * val * val))); } } } 20. l 1 l l l l 20 21. l l 21 22. 22 23. @@ -38,7 +38,7 @@ void PA::train(const sfv_t& sfv, const string& label) {" if (sfv_norm == 0.f) {" return;" }" - update_weight(sfv, loss / sfv_norm, label, incorrect_label);" + update_weight(sfv, loss / (2 * sfv_norm), label, incorrect_label);" }" " string PA::name() const { 23 24. l news20 l l l 24 25. l l l 25 26. -c l C l 26% svm-train" Usage: svm-train [options] training_set_file [model_file]" options:" ..." -c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)" ... 27. AROW 27 28. 12 28 29. AROW 29 30. AROW 30 31. r 31 32. l r l 32 33. l 1/r l l 33 34. --- a/src/classifier/arow.cpp" +++ b/src/classifier/arow.cpp" @@ -40,7 +40,7 @@ void AROW::train(const sfv_t& sfv, const string& label){" if (margin >= 1.f) {" return;" }" - float beta = 1.f / (variance + config.C);" + float beta = 1.f / (variance + 1.f / config.C);" float alpha = (1.f - margin) * beta; // max(0, 1- margin) = 1-margin" update(sfv, alpha, beta, label, incorrect_label);" } 34 35. 35 36. l l (2)r l 36 37. 1 l l l l 37 38. CoreSet l k-means l Jubatus 38 39. l K 396 40. l 1 2 40 41. l l l l 4113 42. l l l l l l l l l 42 43. 43 44. 44