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

北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

今日は社会ネットワーク分析勉強会 #1の日です

python numpy math レポート

社会ネットワーク分析勉強会 #1にお邪魔しています。タグは#TokyoSNAです。Niftyさんのエンジニアサポートという制度で行われているようです。Nifty++

開会宣言

  • オープンソースで学ぶ社会ネットワーク分析
  • テキストの輪読
  • 購読、SNAに関する発表、実習、の3本立て
  • 勉強会のやり方については意見募集
  • SNAについて量的な分析ができるのではないか
  • 隔週でやる予定(次回は7/5、7/20は懇親会したい)

自己紹介

各自自己紹介しました。やはり専門の方が多いようです。

1章 イントロダクション / @who_you_me さん

発表資料はこちらから。

  • SNA → Facebookで遊んでいるとお金がもらえる仕事?
    • 30年以上前からある仕事
    • ソーシャルメディア研究以外にも適用できる
    • グラフ理論を使った人間関係の研究 → 2章
    • 10年前は社会学からも計算機科学からも無視
    • 大量のデータ、API、政府によるデータ公開、などにより流行
  • この本の内容
  • 人々の関係が行動様式を決定する
  • 「関係」
    • 愛情、信頼、嫌悪
    • 分析の目的で変わる: フォロー、リプライ
    • グラフ理論的: 重み付け、対称性、マルチモード
  • 重み付け → 辺に重みをつける
  • 対称性 → 向きがある(上司部下、followなど)
  • マルチモード → アクターのタイプが異なる(個人と組織など)
  • モデルは複雑な方がいいのか?
    • 複雑だと計算が難しかったり、特定の手法が使えなかったりする
  • 統計学 → 独立して起こることを仮定
    • SNA → 独立した出来事などはない。相互依存
    • SNAでは統計学の便利な手法が使えない
  • 具体例: インフォーマルネットワーク
    • 社会学の分野の話
    • インフォーマルな関係: 人格的結びつきを基盤。正規に承認された手続きから外れる(ギデンズ)
    • ホーソン実験: どうすれば仕事は捗る? → 物理的環境はあまり関係ない。インフォーマルな関係が生産性に影響を与える
  • 事例: アクメコンサルティング
    • クライアント単位の組織に組織変更
    • ルーチンペーパーワークのミスが多発。秘書グループの作業。
    • コンサルタントによる調査 → フォーマルな組織とインフォーマルな組織が全然違う
    • インフォーマルネットワークは重要だが経営層には制御できなく、形成を止めたい
    • インフォーマルネットワークの形成は止められない → 監獄でさえも自然発生するもの: 獄中メールシステム。盗人の法律。
    • インフォーマルネットワークは潰れない → テロリストの例: テロリストのネットワークは1週間程度で修復される
  • インフォーマルネットワークのまとめ
    • 強力
    • 制御は難しい
  • 事例: エジプト革命
    • weak tieの力
    • コミュニケーション頻度の低い相手の重要性
    • 求職活動ではweak tie が非常に重要(グラノヴェター)
    • SNSによりweak tie を極めて低いコストで維持ができる → 通常は150人が限界
    • followではなくretweetに注目 → retweetした相手を信頼しているはず
    • 少数の人々が多くのretweet → 影響を持つ人はごく一部
    • retweetが多い人はフォロワーの数とは無関係。同じことを考えている人々を多数集めた集団に入っているか
    • 大事なのは数ではなく密度 → メッセージが"共鳴"する
  • SNAの手法は、次回以降
    • 7章がビックデータの話で難しそうらしい。Hadoopなど
  • 質疑応答
    • Q. 密度とは具体的になんだろう?
    • A. 恐らく、follower同士のネットワークが複雑かどうかではないか
    • Q. SNAとは、グラフを書いて目視で読み解くもの?イメージあってる?
    • A. 昔は社会学の分野では大規模なデータがとれなかったので目視だった(複雑系などでは別)。

Pythonによるソーシャルデータ分析 〜わたしはこうやって修士号を取得しました〜 / @who_you_me さん

同じく、発表資料はこちらから。

  • 修論: Twitterの分析
    • リスト機能により自校の学生の分析
    • 10ヶ月間、プロフィール、フォロワー、ツイートの分析
    • 1631人、117万ツイート程度
    • Pythonを利用
  • Twitter APIからデータ取得
    • 分析対象は先に決めること(ゴミデータは無意味)
  • ネットワーク分析ではランダムサンプリングは意味がない
    • ネットワークがブツ切れになる
    • コミュニティなどで絞る
  • APIを叩くならラッパー → Tweepy
    • OAuth認証切り替えのタイミングだったので使えなかった。urllib2, oauth2
    • 350回/h → 3アカウント。毎月1日の日付が変わると同時にスクリプト実行し、昼前に完了
    • よく落ちる。仕様が変わる。
  • 保存にはMySQLを使ったが、スキーマレスなMongoDBがいいでしょう
  • グラフ
    • フォロー数、フォロワー数、1ヶ月のツイート数、相関
    • matplotlib
  • テキストマイニング
  • データクリーニング
    • 自校じゃない学生が混じっている(OBなど)
    • 正答100程度を使ってベイズ分類機??? → 結局2日かけて手作業
  • 4つのクラスタ(情報発信、日常会話(男)、日常会話(女)、中間)
    • 情報発信クラスタ → PCをよく使う、一方的なfollow、非followの比率が高い
    • 日常会話クラスタ → スマフォの利用率が増えてきた
  • ネットワーク分析
    • クラスタ同士のネットワーク上の距離は?? (networkX)
    • 情報発信する人はやや固まるが、それ以外はバラバラ
    • 違う利用目的の人も活発に交流
  • Pythonいい!
    • C、Javaより楽、覚えやすい
    • RubyPerlよりライブラリが豊富(Numpy, Scipy, matplotlib, NLTK, networkX)
    • オライリーのこの手の書籍はPython(集合知プログラミング、入門自然言語処理、入門ソーシャルデータ)
    • Rは手軽に計算しやすい。かなわない点も多い。メモリの扱いなどで大規模データには向いてないかも??
    • Pythonは1つの言語で完結できる
    • Python for Data Analysis出ますよ → pandasよさげ。Rの代わり
  • いい研究をしたらアウトプット大事 → 次回以降発表者募集
  • 質疑応答
    • Q. RとPythonの測度差は?
    • A. 速さは不明。メモリが溢れた。Rのすごい人にどうすべきか教えて欲しい
    • Q. forループでメモリを食う。ファイル吐き出しなどを利用。forループ使わなければRの方が速いでしょう
    • Q. MeCabの辞書は?定食屋名などよく出る単語の対応は?
    • A. やってない
    • Q. 非対称のfollowが多いとは両方?
    • A. 一方的なfollowも多いし、followされているのも多い
    • Q. 情報発信する人が固まるとあったが、その定義は?
    • A. 4つに分けたクラスタのうちの1つ
    • Q. k-meansではなくLDAって選択肢は?
    • A. LDAとは?わからなかったのでやっていない
    • Q. 一ランク上のトピックによる分割。Pythonでライブラリもあるらしい
    • Q. クラスタを4つにしたのは?
    • A. 試行錯誤し、一番まともそうな分け方をした
    • Q. ノイズカットで工夫とは?
    • A. 手当たり次第1つ1つシラミつぶしした
    • Q. ネットワーク分析はfollow関係?RTは?
    • A. RTでは見てない

演習

22時まで、1章のサンプルコードが動くように各自でセットアップすることになりました。また、今後の担当について決めました。