デジタルマーケティングが、今後は重要らしいです。
「デジマ」、「D2C」と言ったワードを目にすることが増えていませんか?
「そんな言葉は全く知らない」という方は、ヤバイです。
マーケティングに関係のない仕事をしていても、必ずあなたに関係してきます。
プログラマーであっても関係してきます。
ビジネス自体が向かう方向であれば、システムもその方向に向かいます。
その際、ビジネスが向かう方向について知識・経験があるかないかはデカいです。
よって、デジタルマーケティングについて学ぶことは重要と言えます。
そこで、この記事ではネットワーク分析に触れていきます。
本記事の内容
- ネットワーク分析とは?
- ネットワーク分析ライブラリNetworkX
- NetworkXのシステム要件
- NetworkXのインストール
- NetworkXの動作確認
それでは、上記に沿って解説していきましょう。
ネットワーク分析とは?
ネットワーク分析は、つながりを分析することです。
そして、ネットワーク分析にはいろいろな考え方(理論)があります。
ここでは、グラフ理論をベースにして解説していきます。
グラフ理論では、節(〇)を「ノード」、枝(線)を「エッジ」と呼びます。
ノードは、関係を持つ主体となります。
そして、エッジが主体と主体の関係性を表すモノということです。
ノードの例は、以下。
- 人(SNSアカウント)
- 企業
- 駅
- Webサイト
では、ノードやエッジで表現したグラフ(つながり)を分析してどうなるのか?
そして、デジタルマーケティングでどのように活かすことができるのか?
理論などよりも、このことを私たちは最も知りたいはずです。
一般的に言われていることは、以下。
- コミュニティにおける重要人物(キーマン)の抽出
- 協業関係にある企業・人物の抽出
- 路線図から最短経路の抽出
コロナの感染経路をネットワーク分析で抽出できるのもかもしれませんね。
とにかく、つながりさえあれば何でも分析対象となりえるのでしょう。
以上、ネットワーク分析について解説してきました。
専門的なことが知りたい場合は、Googleで検索してみることをおススメします。
さらに、興味を持てば書籍などを読むのもアリでしょう。
次に、ネットワークス分析をPythonで実現する方法を見ていきましょう。
ネットワーク分析ライブラリNetworkX
NetworkXは、Pythonでネットワーク分析を行うためのライブラリです。
NetworkX公式サイト
https://networkx.org/
公式サイトでは、NetworkXを以下のようの説明しています。
ノードは、以下のモノで表現可能。
- テキスト
- 画像
- XML
エッジには、重み、時系列の情報を持たせることが可能です。
また、多くの標準的なグラフアルゴリズムにも対応済ということです。
つまり、拡張性もあり汎用的に使えるということですね。
Pythonで動くこともアピールとして記載されています。
以上が、NetworkXに関する説明です。
次に、このNetworkXを動かす環境面について確認しましょう。
NetworkXのシステム要件
NetworkXの最新バージョンは、2.5となります。
この最新バージョンは、2020年8月22日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
つまり、Pythonが動けばどのOSでもOKということですね。
ただし、Pythonのバージョンには注意が必要となります。
- Python 3.6
- Python 3.7
- Python 3.8
上記が、最新バージョン2.5でサポートしているPythonのバージョンです。
結構狭い範囲ですね。
インストールするPythonのバージョンは、次のコマンドで確認します。
>python -V Python 3.8.6
サポート対象なのでOKです。
以上、NetworkXのシステム要件でした。
では、NetworkXをインストールしていきましょう。
NetworkXのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.0.1 setuptools 52.0.0
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、NetworkXのインストールです。
NetworkXのインストールは、以下のコマンドとなります。
pip install networkx
インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- decorator 4.4.2 networkx 2.5 pip 21.0.1 setuptools 52.0.0
networkxは、最新版がインストールされています。
あと、decoratorというパッケージがインストールされています。
最後に、NetworkXの動作確認を行いましょう。
NetworkXの動作確認
NetworkXの動作確認には、グラフが必要です。
グラフで表示しないと、何が何だかわかりません。
ただ、NetworkX単体ではグラフを表示できません。
グラフを表示するために、Matplotlibの力を借りましょう。
インストールしていないなら、次のコマンドでインストールしておいてください。
pip install matplotlib
Matplotlibがインストールされている前提として、以下のプログラム動かしてください。
コメントを見れば、プログラムの意味はわかるはずです。
import networkx as nx import matplotlib.pyplot as plt # グラフ作成 G = nx.Graph() # ノード追加 G.add_node(1) # ノード追加(複数) G.add_nodes_from([2, 3]) # エッジ追加 G.add_edge(1, 2) e = (2, 3) G.add_edge(*e) # unpack edge tuple* # エッジ追加(複数) G.add_edges_from([(1, 4), (1, 5)]) # グラフ出力 fig = plt.figure() pos = nx.circular_layout(G) nx.draw_networkx(G, pos) plt.axis("off") fig.savefig("test.png")
上記プログラムを実行すれば、次のような画像(test.png)が作成されます。
作成されれば、NetworkXの動作確認は完了です。
今後は、今回インストールしたNetworkXをもとにネットワーク分析を実践していきましょう。
何事も実践あるのみです。
実践して、試行錯誤を重ねる中で血となり肉となっていきます。
本ブログでも、ネットワーク分析を実践した際には記事にする予定です。