回歸
回歸演算法。
屬性 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
- 傳回類型:
- 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