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

Karen
Feb 25, 2024

--

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

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

什麼是圖形

歷史:

  • 最早是 1736 年, Leonhard Euler 解決了柯尼斯堡七座橋的問題,七座橋問題是:柯尼斯堡有四個由七座橋相連的區域,請問是否有可能藉由七座橋走遍所有,且每座橋只能走一次( ans: 不可能)
  • 雖然是起源於數學,但是是一種實用、高保真的資料建模和分析方式

定義:

  • 構成圖形的物件: 節點(Node) 和連線(Relation/Edge)

圖形技術用途,例如:

  • 金融市場到資訊科技的變動環境預測
  • 預測傳染病的傳播途徑
  • 個人化的推薦與體驗

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

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

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

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

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

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

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

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

(像是 80/20 法則)

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

圖形分析使用

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

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

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

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

小心得

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

--

--

Karen
Karen

Written by Karen

分享一些自學的程式筆記,紀錄自己的成長歷程軌跡