読者です 読者をやめる 読者になる 読者になる

Debuginfo

思考とアウトプット

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));

はてなブログjqueryが使えるので直で書けますね。

<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さんは、

f:id:shoheik:20130601172716p:plain

そして自分は

f:id:shoheik:20130601172759p:plain

うん、間違いない(笑。

まとめ

ふぉ、ふぉろーみー。