回归
回归算法。
属性 values_
为图的每个节点分配一个值。
扩散
- class sknetwork.regression.Diffusion(n_iter: int = 3, damping_factor: float = 0.5)[source]
沿着边扩散的回归,给定一些种子节点的温度(热方程)。
温度的行向量 \(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 – 节点在初始状态下的温度(字典或向量)。忽略负温度。
values_row – 二部图中行和列的温度。忽略负温度。
values_col – 二部图中行和列的温度。忽略负温度。
init – 节点在初始状态下的温度。如果为
None
,则使用种子节点的平均温度(默认)。force_bipartite – 如果为
True
,则将输入矩阵视为二部邻接矩阵(默认 =False
)。
- 返回值:
self
- 返回类型:
- fit_predict(*args, **kwargs) ndarray
将算法拟合到数据并返回值。与
fit
方法具有相同的参数。- 返回值:
values – 值。
- 返回类型:
np.ndarray
- get_params()
将参数作为字典获取。
- 返回值:
params – 算法的参数。
- 返回类型:
dict
- predict(columns: bool = False) ndarray
返回算法预测的值。
- 参数:
columns (bool) – 如果为
True
,则返回列的预测值。- 返回值:
values – 值。
- 返回类型:
np.ndarray
- set_params(params: dict) Algorithm
设置算法的参数。
- 参数:
params (dict) – 算法的参数。
- 返回值:
self
- 返回类型:
算法
狄利克雷
- class sknetwork.regression.Dirichlet(n_iter: int = 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 [source]
计算 Dirichlet 问题(平衡时的温度)的解。
- 参数:
input_matrix – 图的邻接矩阵或二部邻接矩阵。
values – 节点的温度(字典或向量)。忽略负温度。
values_row – 二部图中行和列的温度。忽略负温度。
values_col – 二部图中行和列的温度。忽略负温度。
init – 节点在初始状态下的温度。如果为
None
,则使用种子节点的平均温度(默认)。force_bipartite – 如果为
True
,则将输入矩阵视为二部邻接矩阵(默认 =False
)。
- 返回值:
self
- 返回类型:
- fit_predict(*args, **kwargs) ndarray
将算法拟合到数据并返回值。与
fit
方法具有相同的参数。- 返回值:
values – 值。
- 返回类型:
np.ndarray
- get_params()
将参数作为字典获取。
- 返回值:
params – 算法的参数。
- 返回类型:
dict
- predict(columns: bool = False) ndarray
返回算法预测的值。
- 参数:
columns (bool) – 如果为
True
,则返回列的预测值。- 返回值:
values – 值。
- 返回类型:
np.ndarray
- set_params(params: dict) Algorithm
设置算法的参数。
- 参数:
params (dict) – 算法的参数。
- 返回值:
self
- 返回类型:
算法