すべてがつながっている世界では、ユーザーは独立した個人ではなく、何らかの形で互いにつながっています。機械学習モデルを構築する場合、この種の接続がモデルに組み込まれることがあります。
リレーショナル データベースでは異なる行 (ユーザー) 間でこのような関係を使用することはできませんが、グラフ データベースでは非常に簡単に行うことができます。 この記事では、データ サイエンティストが知っておく必要がある重要なグラフ アルゴリズムをいくつか紹介し、それらを Python で使用する方法について説明します。 また、まずはグラフ理論の基礎を学ぶことを強くお勧めします。 サンディエゴ大学は、Coursera でビッグデータに関するグラフ分析コースを公開しました: https://www.coursera.org/learn/big-data-graph-analytics?ranMID=40328&ranEAID=lVarvwc5BD0&ranSiteID=lVarvwc5BD0-uD3tAFL0mCUdzcfwDd6FTQ&siteID=lVarvwc5BD0-uD3tAFL0mCUdzcfwDd6FTQ&utm_content=2&utm_medium=partners&utm_source=linkshare&utm_campaign=lVarvwc5BD0 1. 接続されたブランチ 3つの連結要素を持つグラフ クラスタリング アルゴリズムがどのように機能するかは誰もが知っていますよね? 簡単に言えば、接続されたコンポーネントをハード クラスタリング アルゴリズムとして考え、関連する/接続されたデータ内のクラスター/アイランドを見つけるようにします。 具体的な例を見てみましょう。世界中の 2 つの都市を結ぶ道路データがあり、それを使用して世界中のすべての大陸とそこに含まれる都市を見つける必要があるとします。 どうすればこれを実現できるでしょうか? 頭を使ってください。 ここで使用される連結分岐アルゴリズムは BFS/DFS の特殊なケースであり、ここでは詳細には説明しません。以下では、Networkx を使用してコードを起動して実行する方法について説明します。 応用 小売業の観点から: 多くの顧客が多くの口座を持っていると仮定すると、接続された支店アルゴリズムを使用してデータセット内のさまざまな世帯を見つけることができます。 顧客ID間の接続(パス)は、同じクレジットカードの使用、同じ住所、同じ電話番号などに基づいて推定できます。これらの接続を確立したら、接続ブランチ アルゴリズムを実行して個別のクラスターを作成し、それに世帯 ID を割り当てることができます。 これらのファミリー ID は、家族のニーズに基づいてパーソナライズされた推奨事項を提供するために使用されます。また、ファミリーベースのグループ化機能を作成し、分類アルゴリズムを継続的に改善するためにも使用できます。 財務的な観点から: これらの家族 ID は詐欺を捕まえるためにも使用できます。 1 つのアカウントに詐欺の履歴がある場合、関連するアカウントでも詐欺が行われる可能性が高くなります。 可能性は無限であり、制限となるのはあなたの想像力だけです。 コーディング Python の Networkx モジュールを使用してグラフを作成および分析します。 まず、都市間の距離情報が含まれる、使用されるグラフの例を見てみましょう。 ランダム距離図 まず、接続のリストと、接続の重みとして機能する距離のリストを作成します。
Networkx を使用してグラフを作成します。
次に、この地図からさまざまな大陸とその都市を見つける必要があります。 接続コンポーネントアルゴリズムは次のように使用できます。
上記のように、接続と頂点のみを使用してデータ内のさまざまなコンポーネントを見つけることができます。このアルゴリズムは、上記のいずれかのケースを満たすために、さまざまなデータに対して実行できます。 2. 最短経路 上記はドイツの都市とそれらの間の距離を示しています。 次に、フランクフルト(出発地)からミュンヘンまでの最短距離を見つける必要があります。 この問題を解決するアルゴリズムはダイクストラのアルゴリズムと呼ばれます。ダイクストラ自身の言葉によれば、 ロッテルダムからフローニンゲンへ行く最も早い方法は何ですか? あるいは、どの都市からどの都市へ行くのにも同じです。この最短経路アルゴリズムを設計するのにたった 20 分しかかかりませんでした。ある朝、私は若い婚約者とアムステルダムで買い物をしていました。歩き疲れたので、カフェのテラスに座ってコーヒーを飲みながら、「私にもできるかな?」と思い、最短経路アルゴリズムを設計しました。前にも述べたように、これは 20 分間の発明です。実際、この本は3年後の1959年に出版され、今でも読むことができます。鉛筆と紙でデザインしなかったからこそ、良い本になったのです。後に、鉛筆と紙を使わずにデザインする利点の 1 つは、物事をシンプルに保てることだということに気付きました。結局、このアルゴリズムが私の最高傑作の 1 つになるとは思っていませんでした。 — エドガー・ダイクストラ、フィリップ・L・フラナとのインタビュー、Communications of the ACM、2001[3] 応用
コーディング
次のコマンドを使用して、すべての都市ペア間の最短経路を見つけることもできます。
3. 最小全域木 (MST) ここで別の問題が発生します。あなたが水道管敷設会社またはインターネット光ファイバー会社で働いていて、グラフ内のすべての都市を最小限の電線/パイプで接続する必要がある場合、どのようにしますか? MSTが右側にある無向グラフ 応用
コーディング
この図のMST 上の写真のように配線を敷設する必要があります。 4. ページランク 上の画像は、Google の Web ページランキング アルゴリズムです。着信接続と発信接続の数と品質に基づいてページにスコアを割り当てます。 応用 Page Rank は、ネットワーク ノードの重要性を推定する必要があるあらゆる場所で使用できます。
コーディング この演習では Facebook データを使用します。こちらはFacebookユーザー間の接続/リンクファイルです。まず、次のように Facebook グラフを作成します。
仕組みは次のとおりです:
FB ユーザーグラフ 次に、影響力の高いユーザーを見つける必要があります。 直感的に言えば、ページランキングアルゴリズムは多くの友達を持つユーザーに高いスコアを与え、これらのユーザーは Facebook 上に多くの友達を持っています。
これにより、Web ページのランキング アルゴリズムまたは最も影響力のあるユーザーの並べ替えられたリストが表示されます。
上記の ID は最も影響力のあるユーザーに使用されます。 ここでは影響力のあるユーザーのサブグラフを見ることができます。
最も影響力のあるユーザー(黄色の点) 5. 中心性指標 中心性指標には、機械学習モデルで使用できる多くの特性があります。そのうちの2つを以下に紹介します。他の測定方法については、こちらをご覧ください: https://networkx.github.io/documentation/networkx-1.10/reference/algorithms.centrality.html 媒介中心性: 最も多くの友人を持つユーザーは重要であり、2 つの地理的な場所のユーザーを接続することも重要です。これにより、ユーザーは異なる地理的な場所からのコンテンツを表示できるようになります。媒介中心性は、特定のノードが他の 2 つのノード間の最短経路に出現する回数を定量化します。 次数中心性: ノードが持つ接続の数。 応用 中心性指標は、あらゆる機械学習モデルの機能として使用できます。 コーディング 次のコードは、サブグラフの媒介中心性を見つけるために使用されます。
上記のように、ノードのサイズは媒介中心性の値に応じて調整されます。これらのノードは情報送信機とみなすことができます。媒介中心性が高いノードを切断すると、グラフは多くの部分に分割されます。 要約する この記事では、さまざまな面で人々のライフスタイルを変えた非常に影響力のあるグラフアルゴリズムをいくつか紹介します。 大量のソーシャル データの出現により、ネットワーク分析はモデルの改善、大きな価値の創出、さらには世界に対する人間の理解の向上に大きく役立ちます。 最近は多くのグラフ アルゴリズムが登場していますが、上記のものは私のお気に入りです。ご興味がございましたら、ぜひこれらのアルゴリズムについて深く研究してみてください。この記事では、この分野について限定的に紹介するのみです。 この記事で言及されているすべてのアルゴリズムの Kaggle カーネルはこちらです: https://www.kaggle.com/mlwhiz/top-graph-algorithms |
<<: XLNet の作者と AMiner のコア開発者が協力し、AI でエンタープライズ セールスを強化
機械学習の急速な発展により、インテリジェントな音声処理のための強固な理論的および技術的基盤が築かれま...
6 月 27 日のニュース: わずか半年で、ChatGPT は世界で最も有名なインターネット ブラン...
OpenAIを去った技術の第一人者、カルパシー氏はついにオンラインで2時間のAI講座を開始した。 —...
Web3.0 の最も特別な点は、ユーザーが作成したデジタル コンテンツの所有権と管理権がユーザーに...
近年、飛行制御、ナビゲーション、通信などの技術が継続的に進歩し、私たちの生産や生活におけるドローンの...
SDN (ソフトウェア定義ネットワーク) は、集中制御プレーンを通じてデータ層転送やその他の操作を...
1950 年 10 月に、「機械は考えることができるか?」と題する論文が発表されました。この論文で...
[[348486]]従来の掃除ロボットは、何も言わずにただ働くだけの家庭内の「ロールモデル」です。...
人工知能は、強化された接続性とインテリジェントな自動化を通じて、インダストリー 4.0 に破壊的な変...
[[339878]]この記事はWeChatパブリックアカウント「Backend Technology...
今日、言語を超えた効果的なコミュニケーションはこれまで以上に重要になっています。企業が新しい市場に進...
[[251968]]最近、湖南省の12歳少年が母親を殺害したというニュースが報道され、遺児の教育問...