タイトルって難しい。

学力も体力もない人間の雑記帳。

【ネットワーク分析】 #1 グラフってなんぞや

最近真面目な投稿をしていないので、ネットワーク分析とかグラフ理論とかその周辺のアルゴリズムとかについてシリーズっぽくゆるゆると記述していこうと思います。
本シリーズでは、「ネットワークだぁ?グラフだぁ?全く知らないよ!」って方を対象に書いていくつもりです。

ネットワーク分析とは

ネットワーク分析とは、グラフ理論におけるグラフで表現したものに対する分析方法です。
対象となるデータは幅広く、SNSの繋がりとか感染症の伝搬だとか色々あります。

そもそもグラフとは

グラフ理論のグラフとかドヤ顔で言われてもわかんないですよね。いやそれが普通だと思います。
グラフとは、頂点(またはノード、V: Vertex)と辺(または枝、E: Edge)で表されるものと定義されています。
それらの集合を数学っぽく記述すると、
 V = \left\{v_1, v_2, \ldots , v_{N-1}, v_N \right\}
 E = \left\{e_1, e_2, \ldots , e_{M-1}, e_M \right\}
となります。これは、頂点N個と、枝M本の集合を表すという具合です。
頂点は、何か物(?)を示し、枝はその物々の繋がりを示します。
身近な例で言うと、高速道路の出入り口が頂点、高速道路そのものが枝だと考えたらわかりやすいかと思います。

f:id:cancolle:20160217213532p:plain
図1: 簡単な例・首都高のサイトより 引用元: http://search.shutoko.jp/

有向グラフと無向グラフと次数

グラフと言っても2種類あります。有向グラフと無向グラフです。
何が違うのかといいますと、有向グラフは向き(方向)が指定されており、無向グラフは向きが指定されていません。
また、頂点に接続している枝の数のことを次数といいます。
有向グラフにおいては、出次数(でじすう)と入次数(いりじすう)の2つが存在します。

無向グラフ

無向グラフとは、簡単に言うと、頂点間を結ぶ枝向きが指定されていないグラフです。
データセットとかのサイトに行くと、undirectedと記述されているものがそれです。
簡単な図で示しますと、以下の図2です。
f:id:cancolle:20160217211927p:plain
図2: 私が描いた無向グラフ

この図1では、
 \{v_1, v_2\}, \{v_1, v_3\}, \{v_1, v_4\}, \{v_2, v_3\}, \{v_2, v_4\},\{v_2, v_5\}, \{v_3, v_4\}, \{v_4, v_5\}
という枝があることが分かります。
次数ですが、 v_1から順に
3, 4, 3, 4, 2
となっており、最大次数は頂点 v_2 v_4における4となります。

てか、図汚いですね。はてなフォトライフめ・・・。

有向グラフ

有向グラフとは、簡単に言うと、頂点間を結ぶ枝向きが指定されているグラフです。つまり、どこからどこに向かって、枝があるのか…というのが表現できます。
データセットとかのサイトに行くと、directedと記述されているものがそれです。
簡単な図で示しますと、以下の図3です。
f:id:cancolle:20160217211937p:plain
図3: 私が頑張って描いた有向グラフ

このグラフですと、 v_1がモテモテですね。

出次数ですが、 v_1から順に
0, 4, 2, 2, 0
となります。
これは、点から出て行く枝の数を表します。わかりやすく言うと、何人に向けてラブレターを書いたかみたいな感じですね。

一方、入次数は v_1から順に
3, 0, 1, 2, 2
となります。
これは、店に入ってくる枝の数を表します。わかりやすく言うと、何人からラブレターをもらったかという感じですね。

隣接行列

グラフには、その隣接関係を示す隣接行列というものがあります。
簡単に言うと、どことどこがつながっとんねんって話です。
行、列ともに頂点集合に対応しています。
ちなみに、蛇足ながら書くと領域計算量は O(n^2)です(頂点の数をnとした場合)。

無向グラフにおける隣接行列

図2の例を元に隣接行列を書くと、

 
\begin{pmatrix}
0 & 1 & 1 & 1 & 0 \\
1 & 0 & 1 & 1 & 1 \\
1 & 1 & 0 & 1 & 0 \\
1 & 1 & 1 & 0 & 1 \\
0 & 1 & 0 & 1 & 0 \\
\end{pmatrix}

となります。
無向グラフの場合、双方の向きを考慮しないため、行列は対称となります。

有向グラフにおける隣接行列

図3の例を元に隣接行列を書くと、

 
\begin{pmatrix}
0 & 0 & 0 & 0 & 0 \\
1 & 0 & 1 & 1 & 1 \\
1 & 0 & 0 & 1 & 0 \\
1 & 0 & 0 & 0 & 1 \\
0 & 0 & 0 & 0 & 0 \\
\end{pmatrix}

となります。
有向グラフの場合、向きを考慮し、それを隣接行列でも表現するため、行列は非対称となります。
行方向に攻め、列方向に受け、と考えると簡単だと思います。

今回のまとめ

簡単な事項について取り扱いました。
ループとか、重みとか、接続行列とか色々すっとばしていますが、今回はここまで…。

RかPythonで業界地図を作る(作りたい)

世間では就職活動というものが行われています。
かくいう私も就活生。来月から説明会ラッシュになりそうで、今からスタミナが切れそうな予感しかしてません。

就活生必須アイテム(?)とやらの1つに業界地図という本があります。
それぞれの業界について、資金の流れだったり、株の保持の数値だったりで、相関図を描いてるという本です。
自分自身で買いたいとは思わないのですが、本屋で立ち読みして「へえ〜」と思うことも多いです。
ここで、ふと、私の研究分野について思い出してみました。
私の研究分野はいわゆるネットワーク分析(グラフ理論)です。
そう、こんなことを思いつきました。

「まてよ?株の保持数とかをデータとして落としこめば、グラフ理論におけるグラフでそれって表現できるのでは?」

早速データ探しの旅へ。

・・・見つからない・・・・・・

一応、ページをスクレイピングすればできそうですが、できればスクレイピングは避けたいところ。

いやでも避けられないか。

ということで今後の構想としては、

  1. APIを見つける(絶望的)
  2. rvest/Beautiful Soupでスクレイピングを行う
  3. igraph/networkxで頑張る

という感じです。

「次回、なにかやる。」お楽しみに。

日経業界地図 2016年版

日経業界地図 2016年版

新詳高等地図 (Teikoku’s Atlas)

新詳高等地図 (Teikoku’s Atlas)

音楽から見たこの1年 改め 音楽から見た去年の1年

あけましておめでとうございます。
去年せっかく書き起こしていたのに公開するのを忘れていましたので一部修正した上で公開します。

去年1年間で再生した回数が多かったもの、単純に衝撃をうけたものなどを振り返るだけの記事です。

修羅場 by 東京事変

東京事変はもともと椎名林檎が好きなので聞いていたのですが、何故かこの修羅場という曲はずっとスルーしてたのに急に惹かれたという感じです。


東京事変 - 修羅場

水星(instrumental) by tofubeats

本来ならば歌詞ありの方を推すんですが、僕自身はトラックの良さに惹かれたのであえてinstを。


tofubeats - 水星 (suisei) instrumental

Luv(Sic) pt.3 by Nujabes Feat. Shing02

ほぼ毎年上位に入ってる曲です。たぶん高校2年からずっと聴き続けてる気がします。
シリーズ物なんですが、僕としてはpart3の方がJazzyな感じがして好きです。


Nujabes - luv (sic.) pt 3 [ft.shing02]

キラーボール by ゲスの極み乙女。

Amazon Musicでたまたまみつけてきいてみたら、イントロで即ヤラれました。
そういえば紅白に出るんですね --> 出てました。


ゲスの極み乙女。 キラーボール

トレンチコートマフィア by DJ 松永 Feat. R-指定

たぶん2015年で唯一iTunes Music Storeで購入した曲です。
曲としては、高校生とかの頃にある、おもろいやつとか目立つ奴がパッとしててそうじゃない人間側はパッとしないということへの不満と生き残りをテーマにした曲です。
ちょうどこの曲を知ったのは、自分があることですごく不満を持っていて、どうしてって思うことが常にあった時期でした。
分かる人には共感が得られる・・・といった具合でしょうか。


トレンチコートマフィア feat.R指定 / DJ松永

そう、2015年にリリースされた曲がない…。いや聞いてたんですけどなんか何も来なかったというか。
来年はたぶん書かないだろうなあ --> 今年はたぶん書かないだろうなあ。

恋のアクセス解析

恋のアクセス解析

人は音・音楽をどのように聴いているのか

人は音・音楽をどのように聴いているのか

2015年を振り返ってみる

2015年も残り僅か。
今年もツイートと共に振り返っていきたいと思います。

昨年は簡単に振り返りましたが、今年はイベントが多かったのでもっと細かく書きたいと思います。
can.hatenadiary.com

1月

卒論の提出と、卒研の発表練習で追われてた毎日でした。
プライベートでのトラブルが立て続けに起きたこともあって結構疲れてました。
あと、初めてTokyo.Rで発表したのもこの時でしたね。

2月

現在所属している大学院の冬入試があり、翌週に合格しました。
そこから、進学予定だった大学院の辞退届提出とか色々手続きでバタバタしていました。

3月

ハッカソンとかサークルの春合宿とか追いコンとかありましたが、やはり卒業式が印象深かったです。
学部の4年間、本当に色々やってきたので楽しかったですね。

4月

入院しました(大学院に入学しました)。

5月

Mac買ったり、プロ生でLTしたり五月祭に行ったり。

6月

インターンのESを書き始めたり、面接に行ったりしました。

7月

77円のUSBメモリを買いました。 https://twitter.com/wonder_zone/status/618295861496295424

8月

インターンシップに行ってました。

9月

インターンシップに行ってました。
あとTokyo.RでLTをしたりしました。また、某合宿に行きました。

10月

このくらいの時期からJapan.Rを宣伝するようになりました。

11月

サークルOBとして学祭に行ったりしました。

12月

Japan.Rをしました
ブシロードライブに行きました(今年行ったイベントはこれだけ)。
実家に帰省して、高校の同窓会行きました。

今年は、色々充実した1年間でした。
生活基盤が変わったこともあり、色々大変でしたがその分楽しめました。

それではみなさん良いお年を。

【R Advent Calendar 2015】Japan.Rのお話(副主催目線) #JapanR

「R Advent Calendar 2015」12月7日の記事です。
昨年のAdvent Calendarはスクフェス解析でしたが、今年は12月5日にJapan.R 2015を開催しましたので、ここに書き残しておきます。

can.hatenadiary.com

きっかけ

昨年のJapan.Rのお手伝いをしたご縁もあり、主催のgepuroさんから今回の運営のお誘いをいただきました。
厳密には、「あ、Japan.R運営に入ってるからよろしくねー」と言われたのがきっかけです。

あと、副主催になったきっかけはJapan.R運営メンバーとのキックオフの飲み会でgepuroさんに「副主催な副主催」と言われたことです。
結構ゆるふわです。

実際のお仕事(当日まで)

今回のJapan.Rは主催・副主催に加えて、多数のサポートメンバーがいました。
メンバー内のコミュニケーションツールとして、TwitterのグループDM(今年くらいに実装された?)を使用していました。
僕自身は、おもに宣伝と、宣伝と、宣伝と、時々講演の依頼(結局おじゃんになってしまいましたが…)と、宣伝と、宣伝と、gepuroさんのサポートと、他のメンバーのサポートとかしていました。
仕事はそんなに多くなかったなと後から反省しています。

当日の出来事

1時間半前に集合し、色々セッティングとか行いました。
ここで発覚したのは、電源の数が少ないことと、Wi-Fiの環境がなかったこと。この時は結構びっくりしました。
また、USTREAM配信向けにiPadを設置したのですが、家にあったいらないハンガーを曲げて台代わりにしました。結構、便利でしたのでおすすめです。
USTREAMiPadで配信する際は、どうもWi-Fiが途切れたらそのまま配信が終了になるみたいなので、注意が必要です。

会が始まってからの話ですが、途中から司会が僕に変わりまして、前に立つ機会が多かったです。
幸いにして(?)、学部時代に人の前に立つことが多かったのもあってそこまで緊張しませんでした。むしろ楽しかったぐらいですね。

懇親会の二次会の場所で色々ゴタゴタしてたので、今後はビシっと意思決定できる男になりたいです。
それと懇親会のあとなんですが、山手線を寝過ごして、品川から家までタクシーで帰りました。辛い。

https://twitter.com/wonder_zone/status/673172108302753792

来年とか他の勉強会を運営するとき向けのお話

  • 場所の確保(200人規模だったので大変でした)
  • 電源は基本ないものだと思ってタップとかを用意する
  • Wi-Fiルーターは持参しておく
  • 喫煙所の位置確認
  • 入り口の写真撮影&Twitter等で共有
  • USTREAMはつながってるか適宜確認
  • キャンセルは割と多いと想定すること
  • ドミノは半額クーポンが多いので活用
  • 懇親会で酒を飲み過ぎない(笑)

最後に

来てくださった皆さん、発表してくださった皆さん、本当にありがとうございました。

【情報理工+工学系+学際情報 Advent Calendar 2015】実は便利かもしれないトラベルセンターのお話

  • 12/3の分ダ
  • 今日は箇条書きスタイルでいク
  • トラベルセンターは割と使える子だということを知ってるカ?
  • マルス端末設置なんだゾ
  • わざわざJRの駅までいかなくても特急券とか切符とか買えるゾ
  • たぶんムーンライトながらも買えるゾ
  • この辺りの話はtozaiuserくんが詳しいので書いてくれることを期待してるゾ

  • 国際学生証も発行できるゾ

  • Officeの・・・なんでもないをやりたいときに使えるゾ
  • クレカが使えるかどうかは知らないゾ
  • 筆者はまだ国際学生証の発行にしか行ったことがないゾ

偉大なるOB様からトラブルセンターといわれたゾ

【追記】 スポンサーから助言を頂いたゾ

(おわり)

【情報理工+工学系+学際情報 Advent Calendar 2015】おいしい喫茶店@学内

12/2分の記事です。サクッと書きます。

個人的におすすめのお店は、くろぎです。ここはほんとにうまい。
以前私が食べた時はこんな感じでした。

場所はダイワユビキタス学術研究館というところの1Fで、春日門の近く。 春日門がわかんないって人は、本三の交差点から、学校付近でやらかした時に連れて行かれるであろう本富士警察署へ向かう途中にあります。

ちなみに、食べログは3.7。みんなもっと評価をあげよう。

(おわり)