排名
節點排名演算法。
屬性 scores_
為圖表中每個節點分配一個重要性分數。
PageRank
- 類別 sknetwork.ranking.PageRank(阻尼因子: float = 0.85, 求解器: str = 'piteration', n_iter: int = 10, 容差: float = 1e-06)[原始碼]
每個節點的 PageRank,對應於隨機漫步的拜訪頻率。
隨機漫步會以固定的機率重新開始。重新開始的分佈可以由使用者自訂。此變異稱為個人化 PageRank。
- 參數:
阻尼因子 (float) – 繼續隨機漫步的機率。
求解器 (str) –
'piteration'
,使用冪迭代運算給定的迭代次數。'diteration'
,使用非同步平行擴散運算給定的迭代次數。'lanczos'
,使用特徵值求解器,容差為給定值。'bicgstab'
,使用雙共軛梯度穩定化方法,容差為給定值。'RH'
,使用 Ruffini-Horner 多項式評估。'push'
,使用基於推動的演算法,容差為給定值
n_iter (int) – 某些求解器的迭代次數。
容差 (float) – 某些求解器的收斂容差。
- 變數:
計分 (np.ndarray) – 每個節點的 PageRank 計分。
列計分 (np.ndarray) – 二部圖的列計分。
欄計分 (np.ndarray) – 二部圖的欄計分。
範例
>>> from sknetwork.ranking import PageRank >>> from sknetwork.data import house >>> pagerank = PageRank() >>> adjacency = house() >>> weights = {0: 1} >>> scores = pagerank.fit_predict(adjacency, weights) >>> np.round(scores, 2) array([0.29, 0.24, 0.12, 0.12, 0.24])
參考
Page、L. 、Brin、S. 、Motwani、R. 、&Winograd、T. (1999)。PageRank 引文評分:為網路帶來秩序。史丹佛大學資訊實驗室。
- fit(input_matrix: csr_matrix | ndarray, weights: dict | ndarray | None = None, weights_row: dict | ndarray | None = None, weights_col: dict | ndarray | None = None, force_bipartite: bool = False) PageRank [source]
計算每個節點的 PageRank。
- 參數:
input_matrix (sparse.csr_matrix, np.ndarray) – 圖的鄰接矩陣或雙鄰接矩陣。
weights (np.ndarray, dict) – 個人化 PageRank 重新啟動分佈的權重。如果為
None
,則使用均勻分佈(無個人化,預設)。weights_row (np.ndarray, dict) – 個人化 PageRank 重啟分佈於列的權重。應用於雙部圖。若 weights_row 與 weights_col 皆為
None
(預設值),則採用列的均勻分佈。weights_col (np.ndarray, dict) – 個人化 PageRank 重啟分佈於行的權重。應用於雙部圖。
force_bipartite (bool) – 若為
True
,則將輸入矩陣視為雙部圖的雙鄰接矩陣。
- 傳回:
self
- 傳回類型:
- fit_predict(*args, **kwargs) ndarray
依照資料擬合演算法並傳回評分。與
fit
方法相同的參數。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- get_params()
將參數作為字典取得。
- 傳回:
params – 演算法參數。
- 傳回類型:
dict
- predict(columns: bool = False) ndarray
傳回演算法預測的評分。
- 參數:
columns (bool) – 若為
True
,則傳回列的預測值。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- set_params(params: dict) Algorithm
設定演算法參數。
- 參數:
params (dict) – 演算法參數。
- 傳回:
self
- 傳回類型:
Algorithm
Katz
- 類別 sknetwork.ranking.Katz(阻尼因子: float = 0.5, 路徑長度: int = 4)[程式碼]
Katz 中心性,定義為
\(\sum_{k=1}^K\alpha^k(A^k)^T\mathbf{1}\)
其中 \(A\) 為鄰接矩陣,\(\alpha\) 為阻尼因子且 \(K\) 為路徑長度。
- 參數:
阻尼因子 (float) – 路徑貢獻的阻尼因子。
路徑長度 (int) – 路徑的最大長度。
- 變數:
分數 (np.ndarray) – 各個節點的分數。
列計分 (np.ndarray) – 二部圖的列計分。
欄計分 (np.ndarray) – 二部圖的欄計分。
範例
>>> from sknetwork.data.toy_graphs import house >>> adjacency = house() >>> katz = Katz() >>> scores = katz.fit_predict(adjacency) >>> np.round(scores, 2) array([6.5 , 8.25, 5.62, 5.62, 8.25])
參考
Katz, L. (1953). A new status index derived from sociometric analysis. Psychometrika, 18(1), 39-43.
- fit(input_matrix: csr_matrix | ndarray | LinearOperator) Katz [程式碼]
Katz 中心性。
- 參數:
input_matrix – 圖形的鄰接矩陣或雙鄰接矩陣。
- 傳回:
self
- 傳回類型:
- fit_predict(*args, **kwargs) ndarray
依照資料擬合演算法並傳回評分。與
fit
方法相同的參數。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- get_params()
將參數作為字典取得。
- 傳回:
params – 演算法參數。
- 傳回類型:
dict
- predict(columns: bool = False) ndarray
傳回演算法預測的評分。
- 參數:
columns (bool) – 若為
True
,則傳回列的預測值。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- set_params(params: dict) Algorithm
設定演算法參數。
- 參數:
params (dict) – 演算法參數。
- 傳回:
self
- 傳回類型:
Algorithm
HITS
- class sknetwork.ranking.HITS(solver: str | SVDSolver = 'lanczos')[來源]
每個節點的樞紐和權威分數。對於二部圖,樞紐分數計算於行上而權威分數計算於欄上。
- 參數:
solver (
'lanczos'
(預設值,Lanczos 演算法) 或SVDSolver
(自訂求解器)) – 使用哪個求解器。- 變數:
scores (np.ndarray) – 每個節點的樞紐分數。
scores_row (np.ndarray) – 二部圖每個行的樞紐分數。
scores_col (np.ndarray) – 二部圖每個欄的權威分數。
範例
>>> from sknetwork.ranking import HITS >>> from sknetwork.data import star_wars >>> hits = HITS() >>> biadjacency = star_wars() >>> scores = hits.fit_predict(biadjacency) >>> np.round(scores, 2) array([0.5 , 0.23, 0.69, 0.46])
參考
Kleinberg, J. M. (1999). Authoritative sources in a hyperlinked environment. Journal of the ACM, 46(5), 604-632.
- fit(adjacency: csr_matrix | ndarray) HITS [來源]
使用譜式方法計算 HITS 演算法。
- 參數:
adjacency – 圖的鄰接或鄰接二部矩陣。
- 傳回:
self
- 傳回類型:
- 預測_擬合(*args, **kwargs) ndarray
依照資料擬合演算法並傳回評分。與
fit
方法相同的參數。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- 取得_參數()
將參數作為字典取得。
- 傳回:
params – 演算法參數。
- 傳回類型:
dict
- 預測(欄位: 布林值 = 假) ndarray
傳回演算法預測的評分。
- 參數:
columns (bool) – 若為
True
,則傳回列的預測值。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- 設定_參數(參數: 字典) 演算法
設定演算法參數。
- 參數:
params (dict) – 演算法參數。
- 傳回:
self
- 傳回類型:
Algorithm
中介中心性
- 類別 sknetwork.ranking.中介中心性(正規化: 布林值 = 假)
中介中心性,基於 Brandes 的演算法。
- 變數:
分數 (np.ndarray) – 各個節點的中介中心性值
範例
>>> from sknetwork.ranking import Betweenness >>> from sknetwork.data.toy_graphs import bow_tie >>> betweenness = Betweenness() >>> adjacency = bow_tie() >>> scores = betweenness.fit_transform(adjacency) >>> scores array([4., 0., 0., 0., 0.])
參考
Brandes, Ulrik (2001)。針對中介中心性的一種較快演算法。數學和社會學期刊。
- fit_predict(*args, **kwargs) ndarray
依照資料擬合演算法並傳回評分。與
fit
方法相同的參數。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- get_params()
將參數作為字典取得。
- 傳回:
params – 演算法參數。
- 傳回類型:
dict
- predict(columns: bool = False) ndarray
傳回演算法預測的評分。
- 參數:
columns (bool) – 若為
True
,則傳回列的預測值。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- set_params(params: dict) Algorithm
設定演算法參數。
- 參數:
params (dict) – 演算法參數。
- 傳回:
self
- 傳回類型:
Algorithm
Closeness centrality
- class sknetwork.ranking.Closeness(method: str = 'exact', tol: float = 0.1)[source]
在連接圖中各節點的接近性中心性,對應於從該節點到所有其他節點的最短路徑的平均長度。排名由接近性中心性決定。
- 參數:
method – 指明結果是否應為精確或近似。
tol (float) – 若
method=='approximate'
,每個評分條目的允許容差。
- 變數:
scores (np.ndarray) – 每個節點的接近性中心性。
範例
>>> from sknetwork.ranking import Closeness >>> from sknetwork.data import cyclic_digraph >>> closeness = Closeness() >>> adjacency = cyclic_digraph(3) >>> scores = closeness.fit_predict(adjacency) >>> np.round(scores, 2) array([0.67, 0.67, 0.67])
參考
Eppstein,D.,& Wang,J.(2001 年 1 月)。中心性的快速近似。在第十二屆 ACM-SIAM 離散演算法研討會論文集(第 228-229 頁)中。工業與應用數學學會。
- fit_predict(*args, **kwargs) ndarray
依照資料擬合演算法並傳回評分。與
fit
方法相同的參數。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- get_params()
將參數作為字典取得。
- 傳回:
params – 演算法參數。
- 傳回類型:
dict
- predict(欄位: bool = False) ndarray
傳回演算法預測的評分。
- 參數:
columns (bool) – 若為
True
,則傳回列的預測值。- 傳回:
scores – 評分。
- 傳回類型:
np.ndarray
- set_params(params: dict) Algorithm
設定演算法參數。
- 參數:
params (dict) – 演算法參數。
- 傳回:
self
- 傳回類型:
Algorithm