例のやらせ問題の件をC++で実装した

id:flalin:20120118:1326902575 の続き, [twitter:@dekosuke] と協力してあれこれ暗躍していた.C++で authority の算出を実装した.

色々怪しい,怪しすぎるコードだが... (ここまでアレな実装ばかり普段からやってる訳じゃないよ.)ひとまず最終結果(怪しい評者の一覧)を出すところまで動いたのをマイルストーンとして祝いたい.10件くらいの小さいサンプルで意図通りの計算が行われてるか検証したいな.手元で「クラッシュしない」ことまでしか試してない.Atom 1コア使って計算終了まで15秒なので,もうちょっと丁寧に(?)処理してもいいかも.
そういや 幾何平均では1店でもeccentricity \epsilon_{ij}=0 になると他の店での評点がどんだけ怪しくても信頼度 \alpha_i=1 になってしまうので,eccentricityを(平均取って)gaussianに突っ込むことにした:
 \alpha_i := \exp\(-c \sum_j \epsilon_{ij}^2 {\Large /}N_i \)
N_i は評者 i が評価した店の総数, c は怪しい係数(現在 0.1).
Wikipediaから引っ張ってきた1パスで重み付き平均/標準偏差を求めるコードを使ってみたが,合ってるのか...?

grad.cpp が受け付ける merged.txt の書式は

@店名
レビューア名,昼評点,夜評点
レビューア名,昼評点,夜評点
...

昼評点と夜評点は単純な平均(両方あれば).
寝ないと...