LoginSignup
5
2

More than 3 years have passed since last update.

この記事は古川研究室 Advent_calendar 4日目の記事です。
本記事は古川研究室の学生が学習の一環として書いたものです。内容が曖昧であったり表現が多少異なったりする場合があります。

はじめに

同アドベントカレンダー2日目の記事として、関係データの定義まとめを書きました。そちらでは図や表で関係データの定義や種類のお話をしていました。今回は関係データの「表現」についての記事になります。

前回同様に、書籍 MLPシリーズより「関係データ学習」の内容を読んで自分でまとめてみるというものです。前記事で触れなかったChapter 1の残りの部分に該当します。

関係データの表現

機械学習の分野で関係データを扱う際の表現方法は大きくわけて2つあります。

無向関係かつ2項関係の場合を例に挙げます。

1.グラフ表現

グラフは頂点(ノード)と、頂点の組で表す辺(エッジ)で定義される

グラフ$G = {V, E}$
 頂点$V = {v_1, v_2, ... ,v_n }$
  辺$E = {e_1, e_2, ... ,e_m}$

次の図では円がノード、関係があるところをエッジで表しています。

イラスト.jpg

2.行列(多次元配列)表現

2項関係データであれば、行列で表すことができる

イラスト2.jpg

以上、2つの表現方法を示しました。

  • 人の目で見るためのグラフ表現・・・解析結果の表示
  • 解析の実装時に取り扱いが楽な行列表現・・・入力データなど

のように使い分けが考えられそうです。参考書籍では表現が容易(図を描きやすい?)ため行列表現を用いているようです。プログラムとして書く際には行列のほうが直接表現しやすいので、普段はそちらの表現方法を使うことになると思います。

観測データと未観測データ

関係データを数値で表現する場合に注意することがあります。

グラフ表現の例では無向関係を表しました。この場合は関係がある・無いをそのままノードがある・無いで表現できました。これを行列表現する際には関係がある場合を「1」、無い場合を「0」と置いて表現することができました。このとき関係が無いことを「ノードを書かない」、「0」で表せるのは、関係が無いことが「観測されている」場合のみです。あるオブジェクト同士の関係が、あるか無いかわからない「未観測」であるときは、その部分は値を定義できません。
未観測の部分を0にしてしまうことはできません。

個人的に刺さる注意点でした。

おわりに

2回にわかれてしまいましたが、以上で関係データについてのおおざっぱなまとめになります。関係データを作るとき、扱うとき、それはどういうデータなのか考えるようになるきっかけとなれば幸いです。

参考文献

[1] MLP 機械学習プロフェッショナルシリーズ 関係データ学習 著:石黒勝彦,林浩平 講談社 2016/12/6
[2] 関係データ解析とInfinite Relational Model
https://qiita.com/takuti/items/8faf0e686cfbe68c2dfa

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2