HITSアルゴリズムで@yapcasiaをランキングしてみる (+ 小ネタ::Perlスカウター)
以前のエントリーでyapcasiaのグラフを可視化してみました。はてぶもそこそこついたので調子にのって、第2弾をブログしてみます。温かい目でみてください^^;;
グラフがあれば意外と色々な事ができます。HITSアルゴリズムというアルゴリズムがあります。これはページランクの元になったような考え方で、各ノードのAuthorityとHubという数値を算出することができます。多くリンクされているノードはAuthority値が高くなり、多くリンクしてるノードはHub値が高くなります。すぎゃーんさんが今すぐフォローすべきPerl界のスーパーエンジニアでまとめてくれていますが、実際yapcasiaのグラフからHITSアルゴリズムで計算するとどうなるでしょうか?ヒューリスティックなものと一致するのでしょうか?
では、やってみます。
またまた呼吸をするようにGraph::Algorithm::HITSというモジュールを書きました。Graph Moduleを利用するという以外は車輪の再発明です^^;; (少しだけですが、PDLを初めて使ったので勉強になりました)
use Graph::Algorithm::HITS;
# create Graph instance. Graph should be directed graph
my $graph = $g->create_graph('yapcasia');
my $hits = new Graph::Algorithm::HITS(graph => $graph);
$hits->iterate(100);
my $auth_vector = $hits->get_authority();
my $hub_vector = $hits->get_hub();
上記のような感じでHashに入ったvalueがでます。値は[0,1]でnormalizeされます。
そのランキングは下記のようになりました。
yapcasia authority ranking
Rank | Twitter ID | Auth value |
---|---|---|
1 | miyagawa | 0.0127875043678715 |
2 | takesako | 0.0115862790978772 |
3 | kazuho | 0.0113024024001995 |
4 | bulkneets | 0.0112314654644495 |
5 | lestrrat | 0.0111004007064709 |
6 | yusukebe | 0.0109099535180877 |
7 | dankogai | 0.0106838510124649 |
8 | Yappo | 0.0105909167363143 |
9 | nipotan | 0.0104784121398867 |
10 | otsune | 0.0104737872903038 |
yapcasia hub ranking
Rank | Twitter ID | Hub value |
---|---|---|
1 | takesako | 0.00539958854920275 |
2 | otsune | 0.0044234925958002 |
3 | hondallica | 0.00410115975712679 |
4 | 941 | 0.00409665775102313 |
5 | _gfx_ | 0.00404734758764017 |
6 | tokuhirom | 0.00397918913451428 |
7 | nekoya | 0.00392437144038855 |
8 | apis25 | 0.00390260666086958 |
9 | nipotan | 0.00390190214041973 |
10 | nekokak | 0.00386590368754666 |
おまけ : Perlスカウター
Google glassは持ってませんが、Authorityの値を使えば、スカウターとして使える?? すごい適当ですが、下みたいに指数を使ったりしてみます。
int (1.2 ** ($ref->{auth}->{$name} * 10000));
<h2> Perlスカウター</h2>
<input type="text" id="uid" ></input>
<button id="button1">計測する</button>
<script>
$("#button1").click(function(){
var name = $("#uid").val();
var url = "http://tss.iworlddesigner.com/scouter/yapcasia/" + name;
$.get(url, function(res){
alert(name + “: “ + res);
})
});
</script>
Perlスカウター (@抜きでtwitter IDを入れてください)
miyagawaさんは、
そして自分は
うん、間違いない(笑。
まとめ
ふぉ、ふぉろーみー。