Rustでdefaultdict
RustでPythonのDefaultDictのようにデフォルト値を持ったハッシュマップを使いたい場合、 entry APIを使って、以下のようにすればよい。
let mut normal_map = std::collections::HashMap::<i32, i32>::new(); // normal_map[3]を呼ぶ。ただし、存在しなければmap[3] = 5とする。 // println!("{:?}", normal_map[3]); はできないことに注意する。 println!("{:?}", *normal_map.entry(3).or_insert(5)); // 5 // normal_map[4]に1を足す。ただし、存在しなければmap[4] = 5としてから1を足す。 (*normal_map.entry(4).or_insert(5)) += 1; println!("{:?}", *normal_map.entry(4).or_insert(5)); // 6 // normal_map[5]を6とする。ただし、存在しなければmap[5] = 5としてから6を代入する。 (*normal_map.entry(5).or_insert(5)) = 6; println!("{:?}", *normal_map.entry(5).or_insert(5)); // 6続きを読む
caffeベースで配布されているネットワークをdockerで試す、Refinedetを題材に
FastRGFはじめました@rgf_python2.3.0
rgf_pythonですが、ありがたいことにPorto Seguro’s Safe Driver Prediction Competitionを中心にkaggleで使ったよ、という報告が増えてきました。
https://www.kaggle.com/scirpus/regularized-greedy-forest/code
RGF単体でXGBやLightGBMを越えない場合でも、アンサンブルのお供には有力な選択肢です。
さて、rgf_pythonは現在も継続的に更新を続けており、デプロイ方法の変更や、docker imageの配布、内部的な変更も大きい物がいくつか入っていますが、なんといっても最近ではFastRGFの導入が大きいでしょう。
今日はFastRGFについて書きます。
続きを読む