嵌入

分解

graspologic.embed.select_dimension(X, n_components=None, n_elbows=2, threshold=None, return_likelihoods=False)[源代码]

基于Zhu和Godsie方法从数组生成轮廓似然。 拐点对应于最佳嵌入维度。

Parameters:
X1d or 2d array-like

输入数组生成轮廓似然。如果是1维数组,应按降序排序。如果是2维数组,形状应为(n_samples, n_features)。

n_componentsint, optional, default: None.

要嵌入的组件数量。如果为None,n_components = floor(log2(min(n_samples, n_features)))。如果X是一维数组,则忽略此参数。

n_elbowsint, optional, default: 2.

返回的可能性拐点数量。必须为> 1

thresholdfloat, int, optional, default: None

如果给定,只考虑大于 > threshold 的奇异值。必须 是 >= 0

return_likelihoodsbool, optional, default: False

如果为True,则返回与每个肘部相关的所有可能性。

Returns:
elbowslist

肘部表示后续的最佳嵌入维度。如果没有足够的奇异值,肘部的数量可能少于 n_elbows

sing_valslist

与每个肘部相关的奇异值。

likelihoodslist of array-like

对应于每个肘部的似然数组。仅在return_likelihoods为True时返回。

Parameters:
Return type:

tuple[list[int], list[float]] | tuple[list[int], list[float], list[ndarray]]

参考文献

[1]

朱, M. 和 Ghodsi, A. (2006). 从碎石图通过使用轮廓似然自动选择维度. 计算统计与数据分析, 51(2), pp.918-930.

graspologic.embed.select_svd(X, n_components=None, n_elbows=2, algorithm='randomized', n_iter=5, svd_seed=None)[源代码]

使用SVD进行降维。

通过使用完整的奇异值分解(SVD)或截断的SVD来执行线性降维。完整的SVD使用SciPy的ARPACK包装器执行,而截断的SVD则使用SciPy的LAPACK包装器或Sklearn的随机SVD实现来执行。

如果未指定目标维度数,它还会使用Zhu & Godsie算法执行最佳维度选择。

Parameters:
Xarray-like, shape (n_samples, n_features)

用于执行svd的数据。

n_componentsint or None, default = None

输出数据的期望维度。如果为"full",则n_components必须<= min(X.shape)。否则,n_components必须< min(X.shape)。如果为None,则最佳维度将由select_dimension()使用n_elbows参数选择。

n_elbowsint, optional, default: 2

如果 n_components 为 None,则使用 select_dimension() 计算最佳嵌入维度。否则,忽略。

algorithm{'randomized' (default), 'full', 'truncated'}, optional

使用的SVD求解器:

n_iterint, optional (default = 5)

随机SVD求解器的迭代次数。不适用于'full'或'truncated'。默认值比randomized_svd中的默认值大,以处理可能具有缓慢衰减谱的稀疏矩阵。

svd_seedint or None (default None)

仅适用于 algorithm="randomized";允许您为随机化SVD求解器设置种子,以实现确定性的伪随机行为。

Returns:
Uarray-like, shape (n_samples, n_components)

对应于奇异值的左奇异向量。

Darray-like, shape (n_components)

奇异值按降序排列,作为一维数组。

Varray-like, shape (n_components, n_samples)

对应于奇异值的右奇异向量。

Parameters:
  • X (ndarray | csr_array)

  • n_components (int | None)

  • n_elbows (int | None)

  • 算法 (Literal['full', 'truncated', 'randomized', 'eigsh'])

  • n_iter (int)

  • svd_seed (int | None)

Return type:

tuple[ndarray, ndarray, ndarray]

参考文献

[1]

朱, M. 和 Ghodsi, A. (2006). 从碎石图通过使用轮廓似然自动选择维度. 计算统计与数据分析, 51(2), pp.918-930.

单图嵌入

class graspologic.embed.AdjacencySpectralEmbed[来源]

用于计算图的邻接谱嵌入的类。

邻接谱嵌入(ASE)是基于图的邻接矩阵的k维欧几里得表示。它依赖于SVD将维度减少到指定的k,或者如果未指定k,则可以自动找到维度数量(参见select_svd)。

了解更多内容,请参阅邻接谱嵌入教程

Parameters:
n_componentsint or None, default = None

输出数据的期望维度。如果为"full",则n_components必须<= min(X.shape)。否则,n_components必须< min(X.shape)。如果为None,则最佳维度将由select_dimension()使用n_elbows参数选择。

n_elbowsint, optional, default: 2

如果 n_components 为 None,则使用 select_dimension() 计算最佳嵌入维度。否则,忽略。

algorithm{'randomized' (default), 'full', 'truncated'}, optional

使用的SVD求解器:

n_iterint, optional (default = 5)

随机SVD求解器的迭代次数。不适用于'full'或'truncated'。默认值比randomized_svd中的默认值大,以处理可能具有缓慢衰减谱的稀疏矩阵。

check_lccbool , optional (default = True)

是否检查输入图是否连通。如果图不连通,可能会导致非最优结果。如果为True且输入不连通,则会抛出UserWarning。不检查连通性可能会加快计算速度。

diag_augbool, optional (default = True)

是否在嵌入之前用与度数(或加权网络的边权重和)对应的向量替换邻接矩阵的主对角线。经验表明,这会产生更接近真实情况的潜在位置估计。

concatbool, optional (default False)

如果图是有向的,是否沿轴1连接左右(出和入)潜在位置。

svd_seedint or None (default None)

仅适用于 algorithm="randomized";允许您为随机化SVD求解器设置种子,以实现确定性的伪随机行为。

Attributes:
n_features_in_: int

传递给 fit() 方法的特征数量。

latent_left_array, shape (n_samples, n_components)

图的估计潜在位置。

latent_right_array, shape (n_samples, n_components), or None

仅在图形为有向图或邻接矩阵不对称时计算。 估计图形的右侧潜在位置。否则,为None。

singular_values_array, shape (n_components)

与潜在位置矩阵相关的奇异值。

注释

奇异值分解:

\[A = U \Sigma V^T\]

用于为矩阵找到一个正交基,在我们的例子中是图的邻接矩阵。这些基向量(在矩阵U或V中)根据它们在原始矩阵中解释的方差量进行排序。通过选择这些基向量的一个子集(通过我们的降维选择),我们可以找到一个低维空间来表示图。

参考文献

[1]

Sussman, D.L., Tang, M., Fishkind, D.E., Priebe, C.E. "随机块模型图的一致性邻接谱嵌入," 美国统计协会杂志, 卷107(499), 2012

[2]

Levin, K., Roosta-Khorasani, F., Mahoney, M. W., & Priebe, C. E. (2018). 图邻接谱嵌入的样本外扩展。PMLR: 机器学习研究论文集, 80, 2975-2984.

__init__(n_components=None, n_elbows=2, algorithm='randomized', n_iter=5, check_lcc=True, diag_aug=True, concat=False, svd_seed=None)[源代码]
Parameters:
  • n_components (int | None)

  • n_elbows (int | None)

  • 算法 (Literal['full', 'truncated', 'randomized', 'eigsh'])

  • n_iter (int)

  • check_lcc (bool)

  • diag_aug (bool)

  • concat (bool)

  • svd_seed (int | None)

Return type:

fit(graph, y=None, *args, **kwargs)[source]

将ASE模型拟合到输入图

Parameters:
grapharray-like, scipy.sparse.csr_array, or networkx.Graph

输入要嵌入的图。

y: Ignored
Returns:
selfobject

返回自身的实例。

Parameters:
Return type:

AdjacencySpectralEmbed

fit_transform(graph, y=None, *args, **kwargs)

使用图表拟合模型并应用转换。

n_dimension 是自动确定的或基于用户输入的。

Parameters:
graph: np.ndarray or networkx.Graph

输入要嵌入的图。

Returns:
outnp.ndarray OR length 2 tuple of np.ndarray.

如果是无向图,则返回单个np.ndarray的潜在位置,形状为(n_vertices, n_components)。如果是有向图,concat为True,则在轴1上连接潜在矩阵,形状为(n_vertices, 2*n_components)。如果是有向图,concat为False,则返回潜在矩阵的元组。每个矩阵的形状为(n_vertices, n_components)。

Parameters:
Return type:

ndarray | tuple[ndarray, ndarray]

get_metadata_routing()

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

Returns:
routingMetadataRequest

一个MetadataRequest封装了路由信息。

get_params(deep=True)

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象(如果也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_fit_request(*, graph='$UNCHANGED$')

传递给fit方法的请求元数据。

请注意,此方法仅在 enable_metadata_routing=True 时相关(参见 sklearn.set_config())。 请参阅 用户指南 了解路由机制的工作原理。

每个参数的选项是:

  • True: 请求元数据,并在提供时传递给 fit。如果未提供元数据,则忽略该请求。

  • False: 不请求元数据,元估计器不会将其传递给 fit

  • None: 不请求元数据,如果用户提供了元数据,元估计器将引发错误。

  • str: 元数据应使用此给定的别名传递给元估计器,而不是原始名称。

默认值(sklearn.utils.metadata_routing.UNCHANGED)保留现有的请求。这允许您更改某些参数的请求,而不更改其他参数。

在版本1.3中添加。

注意

此方法仅在此估计器用作元估计器的子估计器时相关,例如在Pipeline内部使用时。否则它没有效果。

Parameters:
graphstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

fit 方法中 graph 参数的元数据路由。

Returns:
selfobject

更新后的对象。

Parameters:
Return type:

AdjacencySpectralEmbed

set_params(**params)

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有形式为__的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

transform(X)

从邻接矩阵或样本外顶点矩阵中获取潜在位置。有关转换样本外顶点的更多详细信息,请参阅 样本外 (OOS) 嵌入

关于数学背景,请参见[2]。

Parameters:
Xarray-like or tuple, original shape or (n_oos_vertices, n_vertices).

原始拟合矩阵("graph"在fit中)或新的样本外数据。 如果X是原始拟合矩阵,则返回一个接近 self.fit_transform(X)的矩阵。

如果 X 是一个样本外矩阵,n_oos_vertices 是新顶点的数量,n_vertices 是原始图中顶点的数量。如果是元组,图是有向的,并且 X[0] 包含从样本外顶点到样本内顶点的边。

Returns:
outnp.ndarray OR length 2 tuple of np.ndarray

潜在位置的数组,形状为 (n_oos_vertices, n_components) 或 (n_vertices, n_components)。如果传递了拟合矩阵,则对其进行转换。

如果 X 是一个包含与新节点对应的邻接向量的数组或元组,则返回新样本外邻接向量的估计潜在位置。 如果是无向的,返回数组。 如果是有向的,返回 (X_out, X_in),其中 X_out 包含与从样本外顶点到样本内顶点的边对应的潜在位置。

注释

如果矩阵是对角增强的(例如,self.diag_aug 为 True),fit 后接 transform 将产生一个与 fit_transform 略有不同的矩阵。

要获取原始嵌入,建议使用fit_transform。在有向图的情况下,如果A是原始样本内邻接矩阵,如果你不想使用fit_transform,则需要将元组(A.T, A)传递给transform

参考文献

[1]

Sussman, D.L., Tang, M., Fishkind, D.E., Priebe, C.E. "随机块模型图的一致性邻接谱嵌入," 美国统计协会杂志, 卷107(499), 2012

[2]

Levin, K., Roosta-Khorasani, F., Mahoney, M. W., & Priebe, C. E. (2018). 图邻接谱嵌入的样本外扩展。PMLR: 机器学习研究论文集, 80, 2975-2984

class graspologic.embed.LaplacianSpectralEmbed[source]

用于计算图的拉普拉斯谱嵌入的类。

拉普拉斯谱嵌入(LSE)是基于图的拉普拉斯矩阵的k维欧几里得表示。它依赖于SVD将维度减少到指定的n_components,或者如果未指定n_components,可以自动找到维度数量。

Parameters:
form{'DAD' (default), 'I-DAD', 'R-DAD'}, optional

指定要使用的拉普拉斯归一化类型。有关形式的更多详细信息,请参见 to_laplacian()

n_componentsint or None, default = None

输出数据的期望维度。如果为"full",则n_components必须<= min(X.shape)。否则,n_components必须< min(X.shape)。如果为None,则最佳维度将由select_dimension()使用n_elbows参数选择。

n_elbowsint, optional, default: 2

如果 n_components 为 None,则使用 select_dimension() 计算最佳嵌入维度。否则,忽略。

algorithm{'randomized' (default), 'full', 'truncated'}, optional

使用的SVD求解器:

n_iterint, optional (default = 5)

随机SVD求解器的迭代次数。不适用于'full'或'truncated'。默认值比randomized_svd中的默认值大,以处理可能具有缓慢衰减谱的稀疏矩阵。

check_lccbool , optional (defult = True)

是否检查输入图是否连通。如果图不连通,可能会导致非最优结果。如果为True且输入不连通,则会抛出UserWarning。不检查连通性可能会加快计算速度。

regularizer: int, float or None, optional (default=None)

要添加到度矩阵对角线上的常数。如果为None,则添加平均节点度。如果为int或float,则必须>= 0。仅在form为'R-DAD'时使用。

concatbool, optional (default False)

如果图是有向的,是否沿轴1连接左右(出和入)潜在位置。

Attributes:
n_features_in_: int

传递给fit()方法的特征数量。

latent_left_array, shape (n_samples, n_components)

图的估计潜在位置。

latent_right_array, shape (n_samples, n_components), or None

仅在图形为有向图或邻接矩阵不对称时计算。 估计图形的右侧潜在位置。否则,为None。

singular_values_array, shape (n_components)

与潜在位置矩阵相关的奇异值。

svd_seedint or None (default None)

仅适用于 algorithm="randomized";允许您为随机化SVD求解器设置种子,以实现确定性的伪随机行为。

注释

奇异值分解:

\[A = U \Sigma V^T\]

用于找到矩阵的正交基,在我们的例子中是图的拉普拉斯矩阵。这些基向量(在矩阵U或V中)根据它们在原始矩阵中解释的方差量进行排序。通过选择这些基向量的一个子集(通过我们的降维选择),我们可以找到一个低维空间来表示图。

参考文献

[1]

Sussman, D.L., Tang, M., Fishkind, D.E., Priebe, C.E. "随机块模型图的一致性邻接谱嵌入," 美国统计协会杂志, 卷107(499), 2012.

[2]

Von Luxburg, Ulrike. "关于谱聚类的教程," 统计与计算, 卷. 17(4), 页. 395-416, 2007.

[3]

Rohe, Karl, Sourav Chatterjee, 和 Bin Yu. "谱聚类和高维随机块模型," 《统计学年鉴》, 第39卷(4), 第1878-1915页, 2011年.

__init__(form='DAD', n_components=None, n_elbows=2, algorithm='randomized', n_iter=5, check_lcc=True, regularizer=None, concat=False, svd_seed=None)[source]
Parameters:
  • 表单 (Literal['I-DAD', 'DAD', 'R-DAD'])

  • n_components (int | None)

  • n_elbows (int | None)

  • 算法 (Literal['full', 'truncated', 'randomized', 'eigsh'])

  • n_iter (int)

  • check_lcc (bool)

  • regularizer (float | None)

  • concat (bool)

  • svd_seed (int | None)

fit(graph, y=None, *args, **kwargs)[来源]

将LSE模型拟合到输入图

默认情况下,使用以下形式的拉普拉斯归一化:

\[L = D^{-1/2} A D^{-1/2}\]
Parameters:
grapharray-like, scipy.sparse.csr_array, or networkx.Graph

输入要嵌入的图。参见 graspologic.utils.import_graph

Returns:
selfobject

返回自身的实例。

Parameters:
Return type:

LaplacianSpectralEmbed

fit_transform(graph, y=None, *args, **kwargs)

使用图表拟合模型并应用转换。

n_dimension 是自动确定的或基于用户输入的。

Parameters:
graph: np.ndarray or networkx.Graph

输入要嵌入的图。

Returns:
outnp.ndarray OR length 2 tuple of np.ndarray.

如果是无向图,则返回单个np.ndarray的潜在位置,形状为(n_vertices, n_components)。如果是有向图,concat为True,则在轴1上连接潜在矩阵,形状为(n_vertices, 2*n_components)。如果是有向图,concat为False,则返回潜在矩阵的元组。每个矩阵的形状为(n_vertices, n_components)。

Parameters:
Return type:

ndarray | tuple[ndarray, ndarray]

get_metadata_routing()

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

Returns:
routingMetadataRequest

一个MetadataRequest封装了路由信息。

get_params(deep=True)

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象(如果也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_fit_request(*, graph='$UNCHANGED$')

传递给fit方法的请求元数据。

请注意,此方法仅在 enable_metadata_routing=True 时相关(参见 sklearn.set_config())。 请参阅 用户指南 了解路由机制的工作原理。

每个参数的选项是:

  • True: 请求元数据,并在提供时传递给 fit。如果未提供元数据,则忽略该请求。

  • False: 不请求元数据,元估计器不会将其传递给 fit

  • None: 不请求元数据,如果用户提供了元数据,元估计器将引发错误。

  • str: 元数据应使用此给定的别名传递给元估计器,而不是原始名称。

默认值(sklearn.utils.metadata_routing.UNCHANGED)保留现有的请求。这允许您更改某些参数的请求,而不更改其他参数。

在版本1.3中添加。

注意

此方法仅在此估计器用作元估计器的子估计器时相关,例如在Pipeline内部使用时。否则它没有效果。

Parameters:
graphstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

fit 方法中 graph 参数的元数据路由。

Returns:
selfobject

更新后的对象。

Parameters:
Return type:

LaplacianSpectralEmbed

set_params(**params)

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有形式为__的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

transform(X)

从邻接矩阵或样本外顶点矩阵中获取潜在位置。有关转换样本外顶点的更多详细信息,请参阅 样本外 (OOS) 嵌入

关于数学背景,请参见[2]。

Parameters:
Xarray-like or tuple, original shape or (n_oos_vertices, n_vertices).

原始拟合矩阵("graph"在fit中)或新的样本外数据。 如果X是原始拟合矩阵,则返回一个接近 self.fit_transform(X)的矩阵。

如果 X 是一个样本外矩阵,n_oos_vertices 是新顶点的数量,n_vertices 是原始图中顶点的数量。如果是元组,图是有向的,并且 X[0] 包含从样本外顶点到样本内顶点的边。

Returns:
outnp.ndarray OR length 2 tuple of np.ndarray

潜在位置的数组,形状为 (n_oos_vertices, n_components) 或 (n_vertices, n_components)。如果传递了拟合矩阵,则对其进行转换。

如果 X 是一个包含与新节点对应的邻接向量的数组或元组,则返回新样本外邻接向量的估计潜在位置。 如果是无向的,返回数组。 如果是有向的,返回 (X_out, X_in),其中 X_out 包含与从样本外顶点到样本内顶点的边对应的潜在位置。

注释

如果矩阵是对角增强的(例如,self.diag_aug 为 True),fit 后接 transform 将产生一个与 fit_transform 略有不同的矩阵。

要获取原始嵌入,建议使用fit_transform。在有向图的情况下,如果A是原始样本内邻接矩阵,如果你不想使用fit_transform,则需要将元组(A.T, A)传递给transform

参考文献

[1]

Sussman, D.L., Tang, M., Fishkind, D.E., Priebe, C.E. "随机块模型图的一致性邻接谱嵌入," 美国统计协会杂志, 卷107(499), 2012

[2]

Levin, K., Roosta-Khorasani, F., Mahoney, M. W., & Priebe, C. E. (2018). 图邻接谱嵌入的样本外扩展。PMLR: 机器学习研究论文集, 80, 2975-2984

graspologic.embed.node2vec_embed(graph, num_walks=10, walk_length=40, return_hyperparameter=1.0, inout_hyperparameter=1.0, dimensions=128, window_size=2, workers=8, iterations=3, interpolate_walk_lengths_by_node_degree=True, random_seed=None)[源代码]

从给定的图中生成一个node2vec嵌入。将遵循word2vec算法来创建嵌入。

Parameters:
graph: Union[nx.Graph, nx.DiGraph]

一个networkx图或有向图。多重图应转换为非多重图,以便调用用户正确处理多重边(即聚合权重或取最后一条边的权重)。如果图是无权重的,每条边的权重将默认为1。

num_walksint

每个源的步行次数。默认值为10。

walk_length: int

每个源的步行长度。默认值为40。

return_hyperparameterfloat

返回超参数 (p)。默认值为 1.0

inout_hyperparameterfloat

输入输出超参数 (q)。默认值为 1.0

dimensionsint

词向量的维度。默认值为128。

window_sizeint

句子中当前词和预测词之间的最大距离。默认值为2。

workersint

使用这些多线程来训练模型。默认值为8。

iterationsint

随机梯度下降(SGD)中的迭代次数。默认值为3。

interpolate_walk_lengths_by_node_degreebool

使用与每个节点度数相对应的动态行走长度。如果节点位于底部20百分位,则默认行走长度为1。如果它位于顶部10百分位,则使用walk_length。如果它位于20-80百分位之间,则在1和walk_length之间线性插值。这将减少低度数节点对结果嵌入的偏差。如果低度数节点与高度数节点具有相同数量的行走(如果未启用此设置,则会发生这种情况),则与高度数节点相比,低度数节点将采取较小范围的随机行走。这将导致您的低度数行走主导高度数节点。

random_seedint

用于可重复结果的种子。默认值为None,将产生随机输出。请注意,为了实现完全确定性的可重复运行,您还必须限制为单个工作线程(workers=1),以消除操作系统线程调度带来的顺序抖动。此外,必须设置环境变量PYTHONHASHSEED以控制哈希随机化。

Returns:
Tuple[np.array, List[Any]]

一个包含矩阵的元组,其中每行索引对应于每个节点的嵌入。该元组还包含一个向量,其中包含矩阵中每行的相应顶点标签。矩阵和向量在位置上相关。

Parameters:
  • (Graph | DiGraph)

  • num_walks (int)

  • walk_length (int)

  • return_hyperparameter (float)

  • inout_hyperparameter (float)

  • 维度 (int)

  • window_size (int)

  • workers (int)

  • 迭代次数 (int)

  • interpolate_walk_lengths_by_node_degree (bool)

  • random_seed (int | None)

Return type:

tuple[ndarray, list[Any]]

注释

The original reference implementation of node2vec comes from Aditya Grover from

https://github.com/aditya-grover/node2vec/.

Further details on the Alias Method used in this functionality can be found at

https://lips.cs.princeton.edu/the-alias-method-efficient-sampling-with-many-discrete-outcomes/

参考文献

[1]

Aditya Grover 和 Jure Leskovec 的 "node2vec: 网络的可扩展特征学习。" 知识发现与数据挖掘,2016年。

多图嵌入

class graspologic.embed.OmnibusEmbed[源代码]

任意数量输入图的综合嵌入,具有匹配的顶点集。

给定 \(A_1, A_2, ..., A_m\) 一组(可能加权的)邻接矩阵,这些矩阵对应一组具有匹配顶点的 \(m\) 个无向图。然后,\((mn \times mn)\) 的 omnibus 矩阵 \(M\) 具有子图,其中 \(M_{ij} = \frac{1}{2}(A_i + A_j)\)。然后使用邻接谱嵌入对 omnibus 矩阵进行嵌入。

了解更多内容,请访问多图嵌入的Omnibus教程

Parameters:
n_componentsint or None, default = None

输出数据的期望维度。如果为"full",则n_components必须<= min(X.shape)。否则,n_components必须< min(X.shape)。如果为None,则最佳维度将由select_dimension()使用n_elbows参数选择。

n_elbowsint, optional, default: 2

如果 n_components 为 None,则使用 select_dimension() 计算最佳嵌入维度。否则,忽略。

algorithm{'randomized' (default), 'full', 'truncated'}, optional

使用的SVD求解器:

n_iterint, optional (default = 5)

随机SVD求解器的迭代次数。不适用于'full'或'truncated'。默认值比randomized_svd中的默认值大,以处理可能具有缓慢衰减谱的稀疏矩阵。

check_lccbool , optional (defult = True)

是否检查所有输入图的平均值是否连通。如果平均图不连通,可能会导致非最优结果。如果为True且平均图不连通,将抛出UserWarning。

diag_augbool, optional (default = True)

是否在嵌入之前用对应于度(或加权网络的边权重和)的向量替换每个邻接矩阵的主对角线。

concatbool, optional (default = False)

如果图是有向的,是否沿轴1连接每个图的左右(出和入)潜在位置。

svd_seedint or None (default = None)

仅适用于 algorithm="randomized";允许您为随机化SVD求解器设置种子,以实现确定性的伪随机行为。

lsebool, optional (default = False)

是否使用图的拉普拉斯矩阵构建Omni矩阵,并使用LSE嵌入Omni矩阵

Attributes:
n_graphs_int

图形数量

n_vertices_int

每个图中的顶点数

latent_left_array, shape (n_graphs, n_vertices, n_components)

图的估计潜在位置。

latent_right_array, shape (n_graphs, n_vertices, n_components), or None

仅在图形为有向图或邻接矩阵不对称时计算。估计图形的右侧潜在位置。否则,为None。

singular_values_array, shape (n_components)

与潜在位置矩阵相关的奇异值。

参考文献

[1]

Levin, K., Athreya, A., Tang, M., Lyzinski, V., & Priebe, C. E. (2017年11月). 一个关于多个随机点积图的综合嵌入的中心极限定理. 在数据挖掘研讨会(ICDMW), 2017年IEEE国际会议上 (第964-967页). IEEE.

__init__(n_components=None, n_elbows=2, algorithm='randomized', n_iter=5, check_lcc=True, diag_aug=True, concat=False, svd_seed=None, lse=False)[source]
Parameters:
  • n_components (int | None)

  • n_elbows (int | None)

  • 算法 (Literal['full', 'truncated', 'randomized', 'eigsh'])

  • n_iter (int)

  • check_lcc (bool)

  • diag_aug (bool)

  • concat (bool)

  • svd_seed (int | None)

  • lse (bool)

fit(graphs, y=None)[source]

使用图表拟合模型。

Parameters:
graphslist of nx.Graph or ndarray, or csr_array

如果是nx.Graph的列表,每个图必须包含相同数量的节点。 如果是ndarray的列表,每个数组必须具有形状(n_vertices, n_vertices)。 如果是ndarray,则数组必须具有形状(n_graphs, n_vertices, n_vertices)。

Returns:
selfobject

返回自身的实例。

fit_transform(graphs, y=None)[source]

使用图拟合模型并在图上应用嵌入。 n_components 要么自动确定,要么基于用户输入。

Parameters:
graphslist of nx.Graph or ndarray, or ndarray

如果是nx.Graph的列表,每个图必须包含相同数量的节点。 如果是ndarray的列表,每个数组必须具有形状(n_vertices, n_vertices)。 如果是ndarray,则数组必须具有形状(n_graphs, n_vertices, n_vertices)。

Returns:
outnp.ndarray or length 2 tuple of np.ndarray.

如果输入的图是对称的,返回形状为 (n_graphs, n_vertices, n_components) 的 ndarray。 如果图是有向的且 concat 为 False,则返回两个数组的元组(形状与上述相同)。 第一个对应于左侧的潜在位置,第二个对应于右侧的潜在位置。 如果图是有向的且 concat 为 True,则左侧和右侧(出和入)的潜在位置会被连接起来。 在这种情况下,返回一个形状为 (n_graphs, n_vertices, 2*n_components) 的张量。

get_metadata_routing()

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

Returns:
routingMetadataRequest

一个MetadataRequest封装了路由信息。

get_params(deep=True)

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象(如果也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_fit_request(*, graphs='$UNCHANGED$')

传递给fit方法的请求元数据。

请注意,此方法仅在 enable_metadata_routing=True 时相关(参见 sklearn.set_config())。 请参阅 用户指南 了解路由机制的工作原理。

每个参数的选项是:

  • True: 请求元数据,并在提供时传递给 fit。如果未提供元数据,则忽略该请求。

  • False: 不请求元数据,元估计器不会将其传递给 fit

  • None: 不请求元数据,如果用户提供了元数据,元估计器将引发错误。

  • str: 元数据应使用此给定的别名传递给元估计器,而不是原始名称。

默认值(sklearn.utils.metadata_routing.UNCHANGED)保留现有的请求。这允许您更改某些参数的请求,而不更改其他参数。

在版本1.3中添加。

注意

此方法仅在此估计器用作元估计器的子估计器时相关,例如在Pipeline内部使用时。否则它没有效果。

Parameters:
graphsstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

fit 方法中 graphs 参数的元数据路由。

Returns:
selfobject

更新后的对象。

Parameters:
Return type:

OmnibusEmbed

set_params(**params)

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有形式为__的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

transform(X)

从邻接矩阵或样本外顶点矩阵中获取潜在位置。有关转换样本外顶点的更多详细信息,请参阅 样本外 (OOS) 嵌入

关于数学背景,请参见[2]。

Parameters:
Xarray-like or tuple, original shape or (n_oos_vertices, n_vertices).

原始拟合矩阵("graph"在fit中)或新的样本外数据。 如果X是原始拟合矩阵,则返回一个接近 self.fit_transform(X)的矩阵。

如果 X 是一个样本外矩阵,n_oos_vertices 是新顶点的数量,n_vertices 是原始图中顶点的数量。如果是元组,图是有向的,并且 X[0] 包含从样本外顶点到样本内顶点的边。

Returns:
outnp.ndarray OR length 2 tuple of np.ndarray

潜在位置的数组,形状为 (n_oos_vertices, n_components) 或 (n_vertices, n_components)。如果传递了拟合矩阵,则对其进行转换。

如果 X 是一个包含与新节点对应的邻接向量的数组或元组,则返回新样本外邻接向量的估计潜在位置。 如果是无向的,返回数组。 如果是有向的,返回 (X_out, X_in),其中 X_out 包含与从样本外顶点到样本内顶点的边对应的潜在位置。

注释

如果矩阵是对角增强的(例如,self.diag_aug 为 True),fit 后接 transform 将产生一个与 fit_transform 略有不同的矩阵。

要获取原始嵌入,建议使用fit_transform。在有向图的情况下,如果A是原始样本内邻接矩阵,如果你不想使用fit_transform,则需要将元组(A.T, A)传递给transform

参考文献

[1]

Sussman, D.L., Tang, M., Fishkind, D.E., Priebe, C.E. "随机块模型图的一致性邻接谱嵌入," 美国统计协会杂志, 卷107(499), 2012

[2]

Levin, K., Roosta-Khorasani, F., Mahoney, M. W., & Priebe, C. E. (2018). 图邻接谱嵌入的样本外扩展。PMLR: 机器学习研究论文集, 80, 2975-2984

class graspologic.embed.MultipleASE[source]

多重邻接谱嵌入(MASE)将具有匹配顶点集的任意数量的输入图嵌入。

对于无向图的总体,MASE假设图的总体是从\(VR^{(i)}V^T\)中采样的,其中\(V \in \mathbb{R}^{n\times d}\)\(R^{(i)} \in \mathbb{R}^{d\times d}\)。得分矩阵\(R^{(i)}\)允许每个图不同,但必须是对称的。所有图共享一个共同的潜在位置矩阵\(V\)

对于有向图的总体,MASE假设总体是从\(UR^{(i)}V^T\)中采样的,其中\(U \in \mathbb{R}^{n\times d_1}\)\(V \in \mathbb{R}^{n\times d_2}\),以及\(R^{(i)} \in \mathbb{R}^{d_1\times d_2}\)。在这种情况下,得分矩阵\(R^{(i)}\)可以是非对称和非方形的,但所有图仍然共享共同的潜在位置矩阵\(U\)\(V\)

了解更多内容,请访问多重邻接谱嵌入(MASE)教程

Parameters:
n_componentsint or None, default = None

输出数据的期望维度。如果为"full",则n_components必须<= min(X.shape)。否则,n_components必须< min(X.shape)。如果为None,则最佳维度将由select_dimension()使用n_elbows参数选择。

n_elbowsint, optional, default: 2

如果 n_components 为 None,则使用 select_dimension() 计算最佳嵌入维度。否则,忽略。

algorithm{'randomized' (default), 'full', 'truncated'}, optional

使用的SVD求解器:

n_iterint, optional (default = 5)

随机SVD求解器的迭代次数。不适用于'full'或'truncated'。默认值比randomized_svd中的默认值大,以处理可能具有缓慢衰减谱的稀疏矩阵。

scaledbool, optional (default=True)

是否在第一个嵌入阶段使用特征值缩放单个特征向量。

diag_augbool, optional (default = True)

是否在嵌入之前用对应于度(或加权网络的边权重和)的向量替换每个邻接矩阵的主对角线。

concatbool, optional (default False)

如果图是有向的,是否沿轴1连接每个图的左右(出和入)潜在位置。

svd_seedint or None (default None)

仅适用于 algorithm="randomized";允许您为随机化SVD求解器设置种子,以实现确定性的伪随机行为。

Attributes:
n_graphs_int

图形数量

n_vertices_int

每个图中的顶点数

latent_left_array, shape (n_samples, n_components)

图的估计潜在位置。

latent_right_array, shape (n_samples, n_components), or None

图的估计潜在位置。仅在输入图是有向的或邻接矩阵不对称时计算。否则,为None。

scores_array, shape (n_samples, n_components, n_components)

每个输入图的估计 \(\hat{R}\) 矩阵。

singular_values_array, shape (n_components) OR length 2 tuple of arrays

如果输入图是无向的,等于连接邻接谱嵌入的奇异值。如果输入图是有向的,singular_values_ 是一个长度为2的元组,其中 singular_values_[0] 对应于连接左邻接谱嵌入的奇异值,而 singular_values_[1] 对应于连接右邻接谱嵌入的奇异值。

注释

当输入图是有向图时,n_componentslatent_left_ 可能不等于 n_componentslatent_right_

__init__(n_components=None, n_elbows=2, algorithm='randomized', n_iter=5, scaled=True, diag_aug=True, concat=False, svd_seed=None)[source]
Parameters:
  • n_components (int | None)

  • n_elbows (int | None)

  • 算法 (Literal['full', 'truncated', 'randomized', 'eigsh'])

  • n_iter (int)

  • 缩放 (bool)

  • diag_aug (bool)

  • concat (bool)

  • svd_seed (int | None)

fit(graphs, y=None)[source]

使用图表拟合模型。

Parameters:
graphslist of nx.Graph, ndarray or scipy.sparse.csr_array

如果是nx.Graph的列表,每个图必须包含相同数量的节点。 如果是ndarray或csr_array的列表,每个数组必须具有形状(n_vertices, n_vertices)。 如果是ndarray,则数组必须具有形状(n_graphs, n_vertices, n_vertices)。

Returns:
selfobject

返回自身的实例。

fit_transform(graphs, y=None)[source]

使用图拟合模型并在图上应用嵌入。 n_components 要么自动确定,要么基于用户输入。

Parameters:
graphslist of nx.Graph, ndarray or scipy.sparse.csr_array

如果列表是nx.Graph,每个图必须包含相同数量的节点。 如果列表是ndarray或csr_array,每个数组必须具有形状(n_vertices, n_vertices)。 如果是ndarray,则数组必须具有形状(n_graphs, n_vertices, n_vertices)。

Returns:
outnp.ndarray or length 2 tuple of np.ndarray.

如果输入的图是对称形状(n_vertices, n_components)。 如果图是有向的且concat为False,则返回两个数组的元组(形状与上述相同)。 第一个对应于左侧的潜在位置,第二个对应于右侧的潜在位置。 当concat为True时,左侧和右侧(出和入)的潜在位置将沿轴1连接。

get_metadata_routing()

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

Returns:
routingMetadataRequest

一个MetadataRequest封装了路由信息。

get_params(deep=True)

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象(如果也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_fit_request(*, graphs='$UNCHANGED$')

传递给fit方法的请求元数据。

请注意,此方法仅在 enable_metadata_routing=True 时相关(参见 sklearn.set_config())。 请参阅 用户指南 了解路由机制的工作原理。

每个参数的选项是:

  • True: 请求元数据,并在提供时传递给 fit。如果未提供元数据,则忽略该请求。

  • False: 不请求元数据,元估计器不会将其传递给 fit

  • None: 不请求元数据,如果用户提供了元数据,元估计器将引发错误。

  • str: 元数据应使用此给定的别名传递给元估计器,而不是原始名称。

默认值(sklearn.utils.metadata_routing.UNCHANGED)保留现有的请求。这允许您更改某些参数的请求,而不更改其他参数。

在版本1.3中添加。

注意

此方法仅在此估计器用作元估计器的子估计器时相关,例如在Pipeline内部使用时。否则它没有效果。

Parameters:
graphsstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

fit 方法中 graphs 参数的元数据路由。

Returns:
selfobject

更新后的对象。

Parameters:
Return type:

MultipleASE

set_params(**params)

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有形式为__的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

transform(X)

从邻接矩阵或样本外顶点矩阵中获取潜在位置。有关转换样本外顶点的更多详细信息,请参阅 样本外 (OOS) 嵌入

关于数学背景,请参见[2]。

Parameters:
Xarray-like or tuple, original shape or (n_oos_vertices, n_vertices).

原始拟合矩阵("graph"在fit中)或新的样本外数据。 如果X是原始拟合矩阵,则返回一个接近 self.fit_transform(X)的矩阵。

如果 X 是一个样本外矩阵,n_oos_vertices 是新顶点的数量,n_vertices 是原始图中顶点的数量。如果是元组,图是有向的,并且 X[0] 包含从样本外顶点到样本内顶点的边。

Returns:
outnp.ndarray OR length 2 tuple of np.ndarray

潜在位置的数组,形状为 (n_oos_vertices, n_components) 或 (n_vertices, n_components)。如果传递了拟合矩阵,则对其进行转换。

如果 X 是一个包含与新节点对应的邻接向量的数组或元组,则返回新样本外邻接向量的估计潜在位置。 如果是无向的,返回数组。 如果是有向的,返回 (X_out, X_in),其中 X_out 包含与从样本外顶点到样本内顶点的边对应的潜在位置。

注释

如果矩阵是对角增强的(例如,self.diag_aug 为 True),fit 后接 transform 将产生一个与 fit_transform 略有不同的矩阵。

要获取原始嵌入,建议使用fit_transform。在有向图的情况下,如果A是原始样本内邻接矩阵,如果你不想使用fit_transform,则需要将元组(A.T, A)传递给transform

参考文献

[1]

Sussman, D.L., Tang, M., Fishkind, D.E., Priebe, C.E. "随机块模型图的一致性邻接谱嵌入," 美国统计协会杂志, 卷107(499), 2012

[2]

Levin, K., Roosta-Khorasani, F., Mahoney, M. W., & Priebe, C. E. (2018). 图邻接谱嵌入的样本外扩展。PMLR: 机器学习研究论文集, 80, 2975-2984

class graspologic.embed.mug2vec[源代码]

多图到向量(mug2vec)。

mug2vec 是一系列三个算法的序列,它为每个输入图学习一个特征向量。

步骤:

1. 传递到排名 - 将所有边的权重从最小到最大进行排名,然后通过一个常数进行归一化。

2. Omnibus嵌入 - 在随机点积模型(RDPG)下,联合学习所有图的低维矩阵表示。

3. 经典多维尺度分析 (cMDS) - 通过计算从全息嵌入中每对图嵌入之间的欧几里得距离,然后进行特征分解,为每个图学习一个特征向量。

Parameters:
pass_to_ranks: {'simple-nonzero' (default), 'simple-all', 'zero-boost'} string, or None
  • 'simple-nonzero'

    为所有非零边分配排名,使用平均值解决平局。然后通过 \(\frac{rank(\text{non-zero edges})}{\text{total non-zero edges} + 1}\) 缩放排名

  • 'simple-all'

    为所有非零边分配排名,使用平均值解决平局。然后通过 \(\frac{rank(\text{non-zero edges})}{n^2 + 1}\) 缩放排名,其中n是节点的数量

  • 'zero-boost'

    保留所有0值的边的权重,但将其他边的排名视为所有0值边的排名已被分配。如果有10个0值的边,最低的非零边将获得11 /(可能的边数)的权重。平局通过那些边本应获得的权重的平均值来解决。可能的边数由图的类型决定(无环或有环,有向或无向)。

  • None

    未应用排名通行。

omnibus_components, cmds_componentsint or None, default = None

输出数据的期望维度。如果为"full",则n_components必须<= min(X.shape)。否则,n_components必须< min(X.shape)。如果为None,则最佳维度将由select_dimension()使用n_elbows参数选择。

omnibus_n_elbows, cmds_n_elbows: int, optional, default: 2

如果 n_components 为 None,则使用 select_dimension() 计算最佳嵌入维度。否则,忽略。

svd_seedint or None (default None)

允许您为Omnibus嵌入中使用的随机化svd求解器设定种子,以实现确定性的伪随机行为。

Attributes:
omnibus_n_components_int

等于参数 n_components。如果输入的 n_components 为 None, 则等于最佳嵌入维度。

cmds_n_components_int

等于参数 n_components。如果输入的 n_components 为 None,则等于最佳嵌入维度。

embeddings_array, shape (n_components, n_features)

来自管道的嵌入。每个图都是n_features维度中的一个点。

__init__(pass_to_ranks='simple-nonzero', omnibus_components=None, omnibus_n_elbows=2, cmds_components=None, cmds_n_elbows=2, svd_seed=None)[source]
Parameters:
  • pass_to_ranks (Literal['simple-nonzero', 'simple-all', 'zero-boost'])

  • omnibus_components (int | None)

  • omnibus_n_elbows (int)

  • cmds_components (int | None)

  • cmds_n_elbows (int)

  • svd_seed (int | None)

Return type:

fit(graphs, y=None)[source]

为每个图计算一个向量。

Parameters:
graphslist of nx.Graph or ndarray, or ndarray

如果是nx.Graph的列表,每个图必须包含相同数量的节点。 如果是ndarray的列表,每个数组必须具有形状(n_vertices, n_vertices)。 如果是ndarray,则数组必须具有形状(n_graphs, n_vertices, n_vertices)。

yIgnored
Returns:
selfreturns an instance of self.
Parameters:
Return type:

mug2vec

fit_transform(graphs, y=None)[source]

为每个图计算一个向量。

Parameters:
graphslist of nx.Graph or ndarray, or ndarray

如果是nx.Graph的列表,每个图必须包含相同数量的节点。 如果是ndarray的列表,每个数组必须具有形状(n_vertices, n_vertices)。 如果是ndarray,则数组必须具有形状(n_graphs, n_vertices, n_vertices)。

yIgnored
Returns:
embeddingsembeddings generated by fit.
Parameters:
Return type:

ndarray

get_metadata_routing()

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

Returns:
routingMetadataRequest

一个MetadataRequest封装了路由信息。

get_params(deep=True)

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象(如果也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_fit_request(*, graphs='$UNCHANGED$')

传递给fit方法的请求元数据。

请注意,此方法仅在 enable_metadata_routing=True 时相关(参见 sklearn.set_config())。 请参阅 用户指南 了解路由机制的工作原理。

每个参数的选项是:

  • True: 请求元数据,并在提供时传递给 fit。如果未提供元数据,则忽略该请求。

  • False: 不请求元数据,元估计器不会将其传递给 fit

  • None: 不请求元数据,如果用户提供了元数据,元估计器将引发错误。

  • str: 元数据应使用此给定的别名传递给元估计器,而不是原始名称。

默认值(sklearn.utils.metadata_routing.UNCHANGED)保留现有的请求。这允许您更改某些参数的请求,而不更改其他参数。

在版本1.3中添加。

注意

此方法仅在此估计器用作元估计器的子估计器时相关,例如在Pipeline内部使用时。否则它没有效果。

Parameters:
graphsstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

fit 方法中 graphs 参数的元数据路由。

Returns:
selfobject

更新后的对象。

Parameters:
Return type:

mug2vec

set_params(**params)

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有形式为__的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

差异图嵌入

class graspologic.embed.ClassicalMDS[源代码]

经典多维尺度分析(cMDS)。

cMDS 寻求数据的低维表示,其中距离很好地反映了原始高维空间中的距离。

Parameters:
n_componentsint, or None (default=None)

要保留的组件数量。如果为None,则将运行 select_dimension() 以找到最佳的嵌入维度。

n_elbowsint, or None (default=2)

如果 n_components 为 None,则使用 select_dimension() 计算最佳嵌入维度。否则,忽略。

dissimilarity'euclidean' | 'precomputed', optional, default: 'euclidean'

使用的相异性度量:

  • 'euclidean'

    数据集中点之间的成对欧几里得距离。

  • 'precomputed'

    预计算的不相似性直接传递给 fit()fit_transform()

Attributes:
n_components_int

等于参数 n_components。如果输入的 n_components 为 None,则等于最佳嵌入维度。

n_features_in_: int

传递给fit()方法的特征数量。

components_array, shape (n_components, n_features)

特征空间中的主轴。

singular_values_array, shape (n_components,)

对应于每个选定组件的奇异值。

dissimilarity_matrix_array, shape (n_features, n_features)

相异矩阵

svd_seedint or None (default None)

仅适用于 n_components!=1;允许您为随机化svd求解器提供种子,以实现确定性的伪随机行为。

参考文献

Wickelmaier, Florian. "MDS简介。" 丹麦奥尔堡大学音质研究小组, 46.5 (2003).

__init__(n_components=None, n_elbows=2, dissimilarity='euclidean', svd_seed=None)[来源]
Parameters:
  • n_components (int | None)

  • n_elbows (int)

  • 不相似度 (Literal['euclidean', 'precomputed'])

  • svd_seed (int | None)

Return type:

fit(X, y=None)[source]

用X拟合模型。

Parameters:
Xarray_like

如果 dissimilarity=='precomputed',输入应该是形状为 (n_samples, n_samples) 的相异矩阵。如果 dissimilarity=='euclidean',则输入应该是形状为 (n_samples, n_features) 的二维数组或形状为 (n_samples, n_features_1, n_features_2) 的三维数组。

Returns:
selfobject

返回自身的实例。

Parameters:
  • X (ndarray)

  • y (Any | None)

Return type:

ClassicalMDS

fit_transform(X, y=None)[source]

拟合来自X的数据,并返回嵌入的坐标。

Parameters:
Xnd-array

如果 dissimilarity=='precomputed',输入应该是形状为 (n_samples, n_samples) 的相异矩阵。如果 dissimilarity=='euclidean',则输入应该是形状为 (n_samples, n_features) 的数组或形状为 (n_samples, n_features_1, n_features_2, ..., n_features_d) 的 nd-array。nd-array 的第一个轴必须是 n_samples

Returns:
X_newarray-like, shape (n_samples, n_components)

嵌入式输入。

Parameters:
  • X (ndarray)

  • y (Any | None)

Return type:

ndarray

get_metadata_routing()

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

Returns:
routingMetadataRequest

一个MetadataRequest封装了路由信息。

get_params(deep=True)

获取此估计器的参数。

Parameters:
deepbool, default=True

如果为True,将返回此估计器及其包含的子对象(如果也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

set_params(**params)

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(如Pipeline)。后者具有形式为__的参数,以便可以更新嵌套对象的每个组件。

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。