# ネットワーク解析

このノートブックは、*`input_table`* パラメータで指定されたテーブルのネットワーク解析を実行します。

### 想定される入力

*input_table* については、このノートブックは `source, target, weight/count` カラムで構成される遷移マトリックスを想定しています。サンプルテーブル：

| source | target | weight/count |
|  --- | --- | --- |
| google.com | /learn | 10 |
| google.com | / | 7.354033 |
| NULL | / | 5.698033 |
| /about | /about | 4.249822 |
| NULL | /press_release_jp | 4.034131 |


### 期待される出力

このノートブックは、遷移の可視化を出力します。サポートされているネットワーク可視化手法：

* [networkx](https://networkx.org/) を使用した有向グラフの可視化。グラフノードは [PageRank](https://en.wikipedia.org/wiki/PageRank) に基づいて重み付けされ、接続されます。
* [Plotly](https://plotly.com/python/sankey-diagram/) を使用したサンキーダイアグラムの可視化。


ネットワーク解析の可視化サンプルは以下の通りです：
![](/assets/image2023-2-28_11-52-41.c112eacfe6a8ab6e2d36f438c0f55f1891312ca55bfcf43917793f54844d33dc.3cb60505.png)
![](/assets/image2023-2-28_11-53-33.7be074b8b23c83fee9726bcfde0300f6e480090ea2ab700524003b3e2647e0ff.3cb60505.png)

### ワークフローの例

[Treasure Boxes](https://github.com/treasure-data/treasure-boxes/blob/automl/machine-learning-box/automl/network_analysis.dig) でサンプルワークフローを確認できます。


```yaml
+network_analysis:
  ipynb>:
    notebook: network_analysis
    input_table: ml_datasets.transition_matrix
```

### パラメータ

| パラメータ名 | コンソール上のパラメータ | 説明 | デフォルト値 |
|  --- | --- | --- | --- |
| docker.task_name | Docker Task Mem | タスクメモリサイズ。契約プランに応じて、64g、128g（デフォルト）、256g、384g、または 512g が利用可能です。 | 128g |
| input_table | Input Table | 解析に使用する TD テーブルを *dbname.table_name* として指定します。 | - |
| limit | Limit | 検索するエッジの最大数。 | 1000 |