【圖論Graph】Part1:初探圖形與圖形演算法之應用

更新於 2024/03/05閱讀時間約 2 分鐘

本系列文為整理學習Graph的筆記內容,以O'REILLY圖形演算法一書為主,並且著重在圖形演算法的實作與應用。

現今資料處理上,最大的挑戰都集中在關係處理,而不只是把離散資料做成表格而已。
raw-image

什麼是圖形

  • 歷史:
    • 最早是 1736 年, Leonhard Euler 解決了柯尼斯堡七座橋的問題,七座橋問題是:柯尼斯堡有四個由七座橋相連的區域,請問是否有可能藉由七座橋走遍所有,且每座橋只能走一次( ans: 不可能)
    • 雖然是起源於數學,但是是一種實用、高保真的資料建模和分析方式
  • 定義:
    • 構成圖形的物件: 節點(Node) 和連線(Relation/Edge)
  • 圖形技術用途,例如:
    • 金融市場到資訊科技的變動環境預測
    • 預測傳染病的傳播途徑
    • 個人化的推薦與體驗

什麼是圖形分析和圖形演算法

圖形演算法是圖形分析工具的子集,圖形分析是一種動作,它使用任何圖形的方法來分析連接的資料

  • 查詢圖形資料
  • 使用基本統計資料
  • 視覺化瀏覽圖表
  • 圖形合併到機器學習任務

而這個分析的動作,稱作圖形演算法(Graph algorithm)

為什麼我們要關心圖形演算法

圖形演算法讓連結性資料更有意義,特別適合用來理解高度連接資料庫的架構,並且揭露其資料模式。

偏好依附原則(preferential attachment),當一個節點要加入網路中,會偏好已經有很多連接的節點。

這就會和常態分佈的模型有很大的差異,它甚至是呈現冪律分佈(power-law distribution)= 少數一些節點有著高度連結,大多數的節點只有少數的連接。

(有點像是 80/20 法則的感覺)

那使用常態分佈的工具去分析這些資料是很麻煩的,因為這往往會面臨資料不平均的問題,資料中可能隱藏著一個結構,但很難被找到。

圖形分析使用

圖形分析應用於預測行為和預測變動群組的行動,需要去理解群組中的關係和結構,並透過圖形演算法視察網路連結來實現。

  • 傳播途徑: 事情怎麼傳的
  • 水流與影像力: 容量和成本控制點
  • 相互作用與韌性: 如何相互作用,未來會不會改變?

這裡的意思比較抽象,大致理解在使用圖形演算法解決的問題,可以有這三種,具體的話可能要等實作真正的案例才足夠理解。

參考資料:圖形演算法:Apache Spark與Neo4j實務範例

小心得

這會是一系列的文,也是在學習圖形演算法時紀錄的筆記,預計會有的內容是:圖形的介紹、圖形演算法,像是:最短路徑、社群檢測、運用在 ML 領域... 等。如果有興趣的話,歡迎追蹤~下次見囉!

avatar-img
33會員
43內容數
歡迎來到《桃花源記》專欄。這裡不僅是一個文字的集合,更是一個探索、夢想和自我發現的空間。在這個專欄中,我們將一同走進那些隱藏在日常生活中的"桃花源"——那些讓我們心動、讓我們反思、讓我們找到內心平靜的時刻和地方
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Karen的沙龍 的其他內容
參加Leetcode的30 Days of Pandas挑戰,除了是學習的機會,更是練習熟悉pandas功能的機會。文章分享了挑戰簡介、題目描述、關鍵技術以及參加挑戰的心得。適合新手學習pandas,也可提升熟練度。
這篇文章將分享最近遇到 NVIDIA GPU driver 的問題,並提供瞭解決步驟,以及證實問題解決的測試方法。當您遇到類似問題時,可以參考這篇文章進行解決。文章中包含了定位庫文件目錄、備份和替換文件以及測試修改的步驟。
前言 前幾篇分享了 IBM Watsonx.ai 平台,以及在平台上使用 LLM 完成客戶體驗分析、與LLM串連處理較複雜的問題。在這一篇中,我們想來嘗試使用檢索增強生成(RAG)的技術,RAG 通過整合外部數據來增強基礎模型的回答能力,這不僅能解決模型訓練數據的局限性問題,還可以提供更精準和相關
前言 在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。 在這篇文章中,將使用 SimpleSequen
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
參加Leetcode的30 Days of Pandas挑戰,除了是學習的機會,更是練習熟悉pandas功能的機會。文章分享了挑戰簡介、題目描述、關鍵技術以及參加挑戰的心得。適合新手學習pandas,也可提升熟練度。
這篇文章將分享最近遇到 NVIDIA GPU driver 的問題,並提供瞭解決步驟,以及證實問題解決的測試方法。當您遇到類似問題時,可以參考這篇文章進行解決。文章中包含了定位庫文件目錄、備份和替換文件以及測試修改的步驟。
前言 前幾篇分享了 IBM Watsonx.ai 平台,以及在平台上使用 LLM 完成客戶體驗分析、與LLM串連處理較複雜的問題。在這一篇中,我們想來嘗試使用檢索增強生成(RAG)的技術,RAG 通過整合外部數據來增強基礎模型的回答能力,這不僅能解決模型訓練數據的局限性問題,還可以提供更精準和相關
前言 在先前的文章中,我們探討了 IBM Watsonx 在客戶滿意度分析中的應用。今天,我們將利用 Google 的兩款大型語言模型(LLM)— flan-ul2 和 flan-t5-xxl,展示它們如何串聯起來生成關於特定主題的隨機問題和回答。 在這篇文章中,將使用 SimpleSequen
前言 在上一篇文章中,分享了第一次使用 IBM Watsonx 的經歷,以及我對 Prompt lab 功能的初步探索。繼續這個話題,本文將探討 Watsonx 平台對 Python SDK 的支持,以及實作幾個 LLM 的應用,這一特性為開發者提供了極大的便利,使得在此平台上進行開發和應用大型語
前言 在這個迅速變化的技術世界裡,AI 已成為推動創新和效率的主要動力之一,最近很幸運得參加了IBM Watsonx 的 workshop,對我來說是一個很好的機會認識企業對於快速導入AI和整合AI應用的平台。IBM Watson 作為AI領域的先驅之一,長久以來一直在智慧型系統和認知計算方面處於
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
題目敘述 題目給定一個二維陣列maze代表迷宮的布局, 其中標記為"."的地方代表可通過,標記為"+"代表牆壁不可通過。 每次移動的時候,可以選擇往上、下、左、右移動一格。 請問從出發點entrace開始走的話,抵達迷宮出口最短距離的步數是多少? 如果無解的話,返回-1。 題目的原文敘述
Thumbnail
題目敘述 圖目會給定我們一串已知變數作除法的值,以分子在前,分母在後的形式表達。 要求我們針對未知的變數除法作計算,以浮點數的形式返回答案;如果無解,返回-1.0。 題目的原文敘述 測試範例 Example 1: Input: equations = [["a","b"],["b",
Thumbnail
題目會給定我們一個輸入陣列connections,和城市的總數目n。 輸入陣列裡面是以pair的方式儲存,(a, b) 分邊代表這條邊的起點和終點。 請問,我們需要改變多少條邊的方向,才能讓每條路徑都指向編號零號的城市( City #0)? 註: 題目還保證,在改變方向之後,一定可以讓每座城
Thumbnail
題目敘述 題目會給我們一棵BST二元搜索樹的根結點root,還有一個指定的目標值key。 要求我們在樹中刪除帶有這個key值的節點,並且返回更新過後二元搜索樹的樹根root。 題目的原文敘述 測試範例 Example 1: Input: root = [5,3,6,2,4,null,
Thumbnail
題目敘述 題目會給定一顆二元樹的根結點Root node,和這棵樹中的任意兩個節點p, q。 請找出p, q 在這棵二元數裡面的最接近公共祖先節點是誰? 最接近的公共節點: 就是p, q兩個節點從下往上走,第一個交會的節點。 題目的原文敘述 測試範例 Example 1: Inpu
Thumbnail
題目敘述 題目會給定一顆二元樹的根結點Root node,和指定的目標值targetSum。 問我們能不能從二元樹裡面找到一條從根結點到葉子結點的路徑,其路徑上的節點值總和恰好為targetSum? 可以的話,返回True。 無解的話,返回False。 題目的原文敘述 測試範例 E
Thumbnail
題目敘述 題目會給定兩顆二元樹的根結點,要求我們判斷這兩顆二元樹是否為 葉子相似樹? 葉子相似樹的定義 兩顆二元樹,從左到右看的葉子結點的序列完全相同。 例如下圖中的這兩顆二元樹,從左到右看的葉子結點的序列 = [6, 7, 4, 9, 8] 完全相同。 題目的原文敘述 測試範例
Thumbnail
題目敘述 題目會給定我們一棵二元數Binary Tree的根結點。 問我們任意祖先節點和晚輩節點之間,最大的差值的絕對值是多少? 題目的原文敘述 測試範例 Example 1: Input: root = [8,3,10,1,6,null,14,null,null,4,7,13] Ou
Thumbnail
題目會給我們節點總數目n、左子樹的關係陣列、右子樹的關係陣列,要求我們驗證在給定的條件下,能不能構成一顆合法的二元樹。
Thumbnail
圖論常用的演算法BFS 與 DFS 的統整與比較。 介紹常用且相關的底層資料結構 並且,介紹幾個適合使用的應用領域、解題分類。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
題目敘述 題目給定一個二維陣列maze代表迷宮的布局, 其中標記為"."的地方代表可通過,標記為"+"代表牆壁不可通過。 每次移動的時候,可以選擇往上、下、左、右移動一格。 請問從出發點entrace開始走的話,抵達迷宮出口最短距離的步數是多少? 如果無解的話,返回-1。 題目的原文敘述
Thumbnail
題目敘述 圖目會給定我們一串已知變數作除法的值,以分子在前,分母在後的形式表達。 要求我們針對未知的變數除法作計算,以浮點數的形式返回答案;如果無解,返回-1.0。 題目的原文敘述 測試範例 Example 1: Input: equations = [["a","b"],["b",
Thumbnail
題目會給定我們一個輸入陣列connections,和城市的總數目n。 輸入陣列裡面是以pair的方式儲存,(a, b) 分邊代表這條邊的起點和終點。 請問,我們需要改變多少條邊的方向,才能讓每條路徑都指向編號零號的城市( City #0)? 註: 題目還保證,在改變方向之後,一定可以讓每座城
Thumbnail
題目敘述 題目會給我們一棵BST二元搜索樹的根結點root,還有一個指定的目標值key。 要求我們在樹中刪除帶有這個key值的節點,並且返回更新過後二元搜索樹的樹根root。 題目的原文敘述 測試範例 Example 1: Input: root = [5,3,6,2,4,null,
Thumbnail
題目敘述 題目會給定一顆二元樹的根結點Root node,和這棵樹中的任意兩個節點p, q。 請找出p, q 在這棵二元數裡面的最接近公共祖先節點是誰? 最接近的公共節點: 就是p, q兩個節點從下往上走,第一個交會的節點。 題目的原文敘述 測試範例 Example 1: Inpu
Thumbnail
題目敘述 題目會給定一顆二元樹的根結點Root node,和指定的目標值targetSum。 問我們能不能從二元樹裡面找到一條從根結點到葉子結點的路徑,其路徑上的節點值總和恰好為targetSum? 可以的話,返回True。 無解的話,返回False。 題目的原文敘述 測試範例 E
Thumbnail
題目敘述 題目會給定兩顆二元樹的根結點,要求我們判斷這兩顆二元樹是否為 葉子相似樹? 葉子相似樹的定義 兩顆二元樹,從左到右看的葉子結點的序列完全相同。 例如下圖中的這兩顆二元樹,從左到右看的葉子結點的序列 = [6, 7, 4, 9, 8] 完全相同。 題目的原文敘述 測試範例
Thumbnail
題目敘述 題目會給定我們一棵二元數Binary Tree的根結點。 問我們任意祖先節點和晚輩節點之間,最大的差值的絕對值是多少? 題目的原文敘述 測試範例 Example 1: Input: root = [8,3,10,1,6,null,14,null,null,4,7,13] Ou
Thumbnail
題目會給我們節點總數目n、左子樹的關係陣列、右子樹的關係陣列,要求我們驗證在給定的條件下,能不能構成一顆合法的二元樹。
Thumbnail
圖論常用的演算法BFS 與 DFS 的統整與比較。 介紹常用且相關的底層資料結構 並且,介紹幾個適合使用的應用領域、解題分類。