回歸

回歸演算法。

屬性 values_ 指派一個值給圖形的每個節點。

傳播

class sknetwork.regression.Diffusion(n_iter: int = 3, damping_factor: float = 0.5)[來源碼]

沿著邊界傳播的回歸,給定某些種子節點的溫度(熱方程式)。

溫度列向量 \(T\) 演變如下

\(T \gets (1-\alpha) T + \alpha PT\)

其中 \(\alpha\) 是阻尼係數,\(P\) 是圖形中隨機漫步的遷移矩陣。

所有數值都會更新,包括種子節點(自由傳播)。詳見 Dirichlet 以取得具有邊界約束的傳播。

參數:
  • n_iter (int) – 傳播的迭代次數(必須為正)。

  • damping_factor (float) – 阻尼因子。

變數:
  • values (np.ndarray) – 各節點的值(= 溫度)。

  • values_row (np.ndarray) – 二部圖列的值。

  • values_col (np.ndarray) – 二部圖欄的值。

範例

>>> from sknetwork.data import house
>>> diffusion = Diffusion(n_iter=1)
>>> adjacency = house()
>>> values = {0: 1, 2: 0}
>>> values_pred = diffusion.fit_predict(adjacency, values)
>>> np.round(values_pred, 1)
array([0.8, 0.5, 0.2, 0.4, 0.6])

參考文獻

Chung, F. (2007)。熱核作為圖形的 Pagerank。美國國家科學院院刊。

fit(input_matrix: csr_matrix | ndarray, values: ndarray | list | dict | None = None, values_row: ndarray | list | dict | None = None, values_col: ndarray | list | dict | None = None, init: None | float = None, force_bipartite: bool = False) Diffusion[source]

計算擴散(平衡溫度)。

參數:
  • input_matrix – 圖形的鄰接矩陣或二部鄰接矩陣。

  • 數值 – 初始狀態中的節點溫度 (字典或向量)。忽略負溫度。

  • values_row – 二分圖中列和行的溫度。忽略負溫度。

  • values_col – 二分圖中列和行的溫度。忽略負溫度。

  • init – 初始狀態中節點的溫度。如果 None,則使用種子節點的平均溫度 (預設值)。

  • force_bipartite – 如果 True,則將輸入矩陣視為二鄰接矩陣 (預設值 = False)。

傳回:

self

傳回類型:

傳播

fit_predict(*args, **kwargs) ndarray

根據資料擬合演算法並傳回數值。與 fit 方法相同的參數。

傳回:

數值 – 數值。

傳回類型:

np.ndarray

get_params()

取得字典形式的參數。

傳回:

參數 – 演算法的參數。

傳回類型:

dict

predict(columns: bool = False) ndarray

傳回演算法預測的數值。

參數:

columns (bool) – 如果 True,則傳回欄的預測值。

傳回:

數值 – 數值。

傳回類型:

np.ndarray

set_params(params: dict) Algorithm

設定演算法參數。

參數:

params (dict) – 演算法的參數。

傳回:

self

傳回類型:

Algorithm

Dirichlet

類別 sknetwork.regression.狄利克雷(n_iter: 整數 = 10)[source]

透過狄利克雷問題(熱擴散和邊界約束)進行回歸。

某些種子節點的溫度會固定下來。其他節點的溫度則會計算出來。

參數:

n_iter (int) – 傳播的迭代次數(必須為正)。

變數:
  • values (np.ndarray) – 各節點的值(= 溫度)。

  • values_row (np.ndarray) – 二部圖列的值。

  • values_col (np.ndarray) – 二部圖欄的值。

範例

>>> from sknetwork.regression import Dirichlet
>>> from sknetwork.data import house
>>> dirichlet = Dirichlet()
>>> adjacency = house()
>>> values = {0: 1, 2: 0}
>>> values_pred = dirichlet.fit_predict(adjacency, values)
>>> np.round(values_pred, 2)
array([1.  , 0.54, 0.  , 0.31, 0.62])

參考文獻

Chung, F. (2007)。熱核作為圖形的 Pagerank。美國國家科學院院刊。

fit(input_matrix: csr_matrix | ndarray, values: ndarray | list | dict | None = None, values_row: ndarray | list | dict | None = None, values_col: ndarray | list | dict | None = None, init: None | float = None, force_bipartite: bool = False) Dirichlet[來源]

計算 Dirichlet 問題(平衡溫度)的解。

參數:
  • input_matrix – 圖形的鄰接矩陣或二部鄰接矩陣。

  • 數值 – 節點溫度(字典或向量)。忽略負值溫度。

  • values_row – 二分圖中列和行的溫度。忽略負溫度。

  • values_col – 二分圖中列和行的溫度。忽略負溫度。

  • init – 初始狀態中節點的溫度。如果 None,則使用種子節點的平均溫度 (預設值)。

  • force_bipartite – 如果 True,則將輸入矩陣視為二鄰接矩陣 (預設值 = False)。

傳回:

self

傳回類型:

Dirichlet

fit_predict(*args, **kwargs) ndarray

根據資料擬合演算法並傳回數值。與 fit 方法相同的參數。

傳回:

數值 – 數值。

傳回類型:

np.ndarray

get_params()

取得字典形式的參數。

傳回:

參數 – 演算法的參數。

傳回類型:

dict

predict(columns: bool = False) ndarray

傳回演算法預測的數值。

參數:

columns (bool) – 如果 True,則傳回欄的預測值。

傳回:

數值 – 數值。

傳回類型:

np.ndarray

set_params(params: dict) Algorithm

設定演算法參數。

參數:

params (dict) – 演算法的參數。

傳回:

self

傳回類型:

Algorithm