Drkcore

19 05 2012 life Tweet

ATNDのイベント参加状況をフィンガープリントにしてbayonでクラスタリング

ATNDはアテンションのデータとしても興味深いわけで、ATteNtion Dataとして使ってみたいなぁと常々かんがえていたわけですが。

静岡javaScript勉強会が丁度よさげなデータだったので、対象者の参加した他のイベントに参加(1)不参加(0)っていう10のビットをフィンガープリントとして bayonを使ってクラスタリングをしてみた。

import json
import requests
import time

event_id = 19418
event_url = "http://api.atnd.org/events/users/?event_id=%d&format=json" % event_id
r = requests.get(event_url)
ev = json.loads(r.text)

for u in ev['events'][0]['users']:
    nickname = u['nickname']
    user_url = "http://api.atnd.org/events/users/?user_id=%d&format=json" % u['user_id']
    r = requests.get(user_url)
    ev = json.loads(r.text)
    events = [str(e['event_id']) + "\t1" for e in ev['events']]
    print "%s\t%s" % (nickname, "\t".join(events))
    time.sleep(1)

これでTSVのファイルを吐くので、js.tsvとでもしてbayonで実行する。44人いるので6クラスにわけてみた。

$ bayon -n 6 js.tsv 
1   まあこ logicraft   y.yabe  tomof
2   Kaz_110 yukio.47    secondarykey    となか ando_ando_ando  harumakiyukko   keito5656
3   polidog でみ/DEMi k0sukey
4   tano4510    bontakun_R  aalt    wangzhi planpot オーイシ
5   Hotti   kawario you39   ahonuishino jamireon    motokix _wa_    toniokatanuki   Wataru \
 Yokoyama   deep    keiyuyama   haru_iida   fmmfm   enkue   dongame Shinichi Nabeta nckt \
    muchico Lasty
6   fujimaruJP  w1mvy   taka2geek   eibiisii    iori_ma

5群はその他をまとめた感じですね。1群はフロントエンド寄りの人達で、2群はサーバーまわりを好む人達ですね。3,4群は地理的な制約も受けてるのかなぁと思ってそれぞれの人達の参加したイベント眺めてみたんだけど別れ方がよくわからん。クラスタ数を小さくしてっても3群はなかなかどこにもマージされんしなぁ。ネガティブな特徴(不参加の状況が似ている)が出ているんだろうかねぇ。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021