🌟

Crunchbaseデータを用いたスタートアップと投資家のネットワーク可視化

2024/03/11に公開

はじめに

スタートアップエコシステムは複雑で、多くのプレイヤーが絡み合っています。スタートアップにとっての資金調達は、その成長の鍵を握る一大イベントですが、どの投資家がどの企業に関わっているかを把握することは一筋縄ではいきません。そこで、この記事では、Pythonを活用して、Crunchbaseデータを基にスタートアップと投資家の関係を視覚化する方法をご紹介します。

データセットの準備(Crunchbase Proプランが必要です)

まず、Crunchbaseから取得したデータセットを用意します。このデータには、スタートアップの名前とトップ5の投資家がリスト化されています。以下のように自分のリストにTop 5 Investorsを追加します。 これをcsvとして任意のディレクトリの保存します。
mylist.jpg
本記事の例では、データからランダムに100件を抽出して使用します。これにより、データの取り扱いが容易になり、グラフの複雑さを適切なレベルに保つことができます。

ネットワークグラフの構築

次に、NetworkXライブラリを使ってネットワークグラフを構築します。各企業と投資家をノードとして、その間の関係をエッジとしてグラフに追加していきます。ここで、投資家ノードは特別な色でマークすることで、スタートアップと区別します。
グラフの可視化にはPyvisライブラリを用います。PyvisはNetworkXグラフをインタラクティブなHTML形式で表示するためのツールです。可視化されたグラフでは、ユーザーがノードにマウスをホバーすることで、追加の情報を得ることができます。また、ネットワークの特定部分をズームイン・アウトして詳細を確認することも可能です。

from pyvis.network import Network
import pandas as pd
import networkx as nx

df = pd.read_csv('your_data')
#dfの中のランダム100件を抽出
df = df.sample(100)
# 企業名と投資家名を分割する
df['Investor'] = df['Top 5 Investors'].str.split(',')
df.drop(columns='Top 5 Investors',inplace=True)
df['Investor'].fillna('該当なし')

# ネットワークグラフを作成する
G = nx.Graph()

# 企業ごとに投資家リストを作成し、ネットワークグラフに追加する
for i, row in df.iterrows():
    company = row['Organization Name']
    investors = str(row['Investor']).split(',')
    for investor in investors:
        # 投資家がまだネットワークグラフに存在しない場合は追加する
        investor = investor.replace("[","").replace("]","") # [ ] を除去する
        if not G.has_node(investor):
            G.add_node(investor, color="#FFB6C1") # 投資家のノードの色を変える
        # 企業と投資家の間にエッジを追加する
        G.add_edge(company, investor)

# ネットワークのインスタンス生成
network = Network(
    height="600px",
    width="800px",
    bgcolor="#ffffff",
    font_color="#333333",
    notebook=True,
    directed=False,
)

# グラフにノードとエッジを追加
for node in G.nodes():
    if node not in df['Organization Name'].values: # 投資家の場合は色を変える
        network.add_node(node, size=10, color="#FFB6C1")
    else:
        network.add_node(node, size=10, color="#00AEEF")
for source, target in G.edges():
    network.add_edge(source, target, width=1, color="#707070")

network.show_buttons()  # 各種ボタンの表示
# プロットを表示
network.show("network_sample.html")

今回の場合は私の研究で使っていた米国のスタートアップのとあるリストを使ったため、アメリカ国立科学財団(Nationnal Science Foundation)が幅広いスタートアップに中核となって投資していることがわかりました。

pyvis.jpg

まとめ

この可視化コードを利用することで、スタートアップと投資家の関係を一目で理解することができます。特に、ある特定の投資家が多くのスタートアップに投資しているパターンや、ある分野に特化した投資家の動向など、投資の傾向を把握するのに役立ちます。今回のツールはデータサイエンティスト、マーケットアナリスト、または起業家自身にとって、価値あるインサイトを提供する可能性を秘めています。今後より詳細なネットワーク分析の手法を用いたいと考えています!

Discussion