DatistEQ之理論溯源

DatistEQ研發(fā)十多載,代碼幾十萬行,卻一直困惑于理論基礎問題。這種數據處理方式在人類科學史上,處于一個什么樣的位置呢?它在科技發(fā)展的大樹中又在那一個枝葉上呢?偶然間看了一篇關于有向無環(huán)圖的文章,才豁然開朗,原來是它。如此,研發(fā)上,有了更多的技術參考;應用上,有了更多的科學依據。

1、圖[1]

圖是由一組頂點和一組能夠將兩個頂點相連的邊組成。

圖主要包括:

  • 無向圖,結點的簡單連接
  • 有向圖,連接有方向性
  • 加權圖,連接帶有權值
  • 加權有向圖,連接既有方向性,又帶有權值

術語

  • 頂點:圖中的一個點(vertex)
  • 邊:連接兩個頂點的線段叫做邊(edge)
  • 相鄰的:一個邊的兩頭的頂點稱為是相鄰的頂點
  • 度數:由一個頂點出發(fā),有幾條邊就稱該頂點有幾度,或者該頂點的度數是幾
  • 路徑:通過邊來連接,按順序的從一個頂點到另一個頂點中間經過的頂點集合
  • 簡單路徑:沒有重復頂點的路徑
  • 環(huán):至少含有一條邊,并且起點和終點都是同一個頂點的路徑
  • 簡單環(huán):不含有重復頂點和邊的環(huán)
  • 連通的:當從一個頂點出發(fā)可以通過至少一條邊到達另一個頂點,我們就說這兩個頂點是連通的
  • 連通圖:如果一個圖中,從任意頂點均存在一條邊可以到達另一個任意頂點,我們就說這個圖是個連通圖
  • 無環(huán)圖:是一種不包含環(huán)的圖
  • 稀疏圖:圖中每個頂點的度數都不是很高,看起來很稀疏
  • 稠密圖:圖中的每個頂點的度數都很高,看起來很稠密
  • 二分圖:可以將圖中所有頂點分為兩部分的圖

2、有向圖

定義:一幅有方向性的圖(或有向圖)是由一組頂點和一組有方向的邊組成的,每條有方向的邊都連接著有序的一對頂點。

有向圖是一幅有方向性的圖,由一組頂點和有向邊組成。所以,大白話來講,有向圖是包括箭頭來代表方向的。

常見的例如食物鏈,網絡通信等都是有向圖的結構。

食物鏈

術語
上面我們介紹了頂點的度數,在有向圖中,頂點被細分為了:

  • 出度:由一個頂點出發(fā)的邊的總數
  • 入度:指向一個頂點的邊的總數

一條有向邊的第一個頂點稱為它的頭,第二個頂點則被稱為它的尾。

有向圖詳解

接著,由于有向圖的方向性,一條邊的出發(fā)點稱為頭,指向點稱為尾。

  • 有向路徑:圖中的一組頂點可以滿足從其中任意一個頂點出發(fā),都存在一條有向邊指向這組頂點中的另一個。
  • 有向環(huán):至少含有一條邊的起點和終點都是同一個頂點的一條有向路徑。
  • 簡單有向環(huán):一條不含有重復頂點和邊的環(huán)。
  • 路徑或環(huán)的長度就是他們包含的邊數。
  • 圖的連通性在有向圖中表現為可達性,由于邊的方向性,可達性必須是通過頂點出發(fā)的邊的正確方向,與另一個頂點可連通。

在有向圖中,邊是單向的:每條邊所連接的兩個頂點都是一個有序對,它們的鄰接性是單向的。許多應用(比如表示網絡、任務調度條件或是電話的圖)都是天然的有向圖。

實際生活中的典型有向圖


以一個正在安排課程的大學生為例,有些課程是其他課程的先導課程。[2]

課程安排
標準有向圖模型

3、有向無環(huán)圖

有向無環(huán)圖,不包含有向環(huán)的有向圖就是有向無環(huán)圖,DAG,Directed Acyclic Graph。

DAG看他的結構挺唬人的,但是原理還是蠻簡單的。DAG改變的是傳統區(qū)塊鏈的數據結構。簡而言之,一個圖(graph)是由兩部分組成:點(vertex)和邊(edge)。所謂有向無環(huán)圖其實就是:有方向的邊;這些邊在一個圖中不會構成一個閉合的環(huán)路。

DAG(Directed Acyclic Graph),中文名"有向無環(huán)圖"。"有向"指的是有方向,準確的說應該是同一個方向,"無環(huán)"則指夠不成閉環(huán)。

幾乎所有的科學研究都在探索因果關系,有向無環(huán)圖(DAGs)是因果關系研究的圖形工具。[3]

因果效應如何描述?簡單地,對病因A及其效應B,應用單箭頭“→”表示為“A→B”:箭頭方向反應時序關系,箭頭兩端反應了它們之間存在的因果關系?!癆→B”代表著,A發(fā)生時間在前,B發(fā)生時間在后;A是B病因,B是A效應。

DAG示意圖

在一特定路徑上,由一個連接符接在一起的兩個變量(或節(jié)點),稱這相鄰節(jié)點,表現為相鄰關系,如上圖中A→B,A→D,E→C等。相鄰變量互為父子關系,以圖上B→C為例,稱B為C的父節(jié)點,C為B的子節(jié)點。如路徑A→B→C→F上,C有父節(jié)點或更早的病因變量,則將這些節(jié)點(如A、B)稱為C的祖先節(jié)點;路徑上,B有子節(jié)點或更晚的效應變量,則將這些效應變量,稱為后代節(jié)點,如F、C均為B的后代節(jié)點。當C的祖先節(jié)點沒有更早的父節(jié)點時,則稱此時祖先節(jié)點為外源節(jié)點(或根節(jié)點,如A);該路徑上所有的其它節(jié)點均稱為內源節(jié)點。

代際關系是基于特定的路徑,因此同一節(jié)點在不同的路徑可表現為不同的代際關系。

4、可視化建模[4]

可視化建模面向算法工程師和數據分析人員,通過拖曳的可視化交互方式便捷編排算法實驗,集數據處理、模型訓練和評估、在線預測于一體,幫助開發(fā)者實現零代碼的開發(fā)工作。為達到這一目標,功能設計需要考慮:

  • 拖曳式實驗流:通過可視化拖曳,自由編排數據集、模型以及機器學習/深度學習等算法組件,組成有向無環(huán)圖。屏蔽了復雜的算法代碼開發(fā)過程,極大降低了用戶進行算法開發(fā)或數據分析的門檻,給用戶提供“所見即所得”的交互體驗,幫助用戶在面對智能業(yè)務需求時快速響應、快速試錯。

  • 豐富算法組件:提供大量開箱即用的算法組件,支持用戶完成數據處理、模型訓練、模型評估和預測的實驗流程設計和調試,覆蓋主流算法應用場景。通過可視化配置算法參數,零基礎算法背景的用戶也能快速上手,訓練出可用的算法模型。同時,對算法模塊進行不同的參數設置,能讓模型訓練過程透明可控,分析結果更準確。

  • 實驗周期調度:在實際智能業(yè)務場景中,經常需要根據每天產生的最新數據來定時運行實驗和訓練算法模型。根據不同的需求靈活安排調度實驗,需要支持細粒度的調度周期,包含分鐘、小時、天、周、月等級別。

  • 告警通知:算法模型訓練時間往往較長,設置告警通知可以保證在第一時間得知實驗運行和模型訓練的結果。提供不同的告警方式(郵件、短信、釘釘等),可自定義告警規(guī)則和內容,靈活適配不同的用戶習慣。

  • 多角色協同:算法開發(fā)是一個團隊型工作,需要很多角色共同參與。從底層資源的運維到上層的項目管理,多人多角色分工協作的項目管理模式,可以讓算法開發(fā)者專注算法建模任務,減輕煩瑣的底層資源運維工作,同時保障人員權限隔離和數據安全。

參考文獻
[1] https://www.cnblogs.com/Evsward/p/dag.html
[2] Sedgewick.R, Wayne.K. 《Algorithms》 Fourth Edition
[3] 鄭英杰, 趙耐青. 有向無環(huán)圖:語言、規(guī)則及應用 [J] . 中華流行病學雜志,2017,38( 08 ): 1140-1144. DOI: 10.3760/cma.j.issn.0254-6450.2017.08.029
[4] 付登坡, 江敏, 任寅姿等.《數據中臺:讓數據用起來!》

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容