tslearn.clustering.KernelKMeans

class tslearn.clustering.KernelKMeans(n_clusters=3, kernel='gak', max_iter=50, tol=1e-06, n_init=1, kernel_params=None, n_jobs=None, verbose=0, random_state=None)[source]

核K均值。

Parameters:
n_clustersint (default: 3)

要形成的集群数量。

kernelstring, or callable (default: “gak”)

内核应该是“gak”,在这种情况下使用来自[2]的全局对齐内核,或者是scikit-learn的pairwise_kernels接受的作为度量的值

max_iterint (default: 50)

单次运行中k-means算法的最大迭代次数。

tolfloat (default: 1e-6)

惯性变化阈值。如果在某一点上,惯性在两次连续迭代之间的变化小于此阈值,则认为模型已经收敛,算法停止。

n_initint (default: 1)

k-means算法将使用不同的质心种子运行的次数。最终结果将是n_init次连续运行中惯性最小的最佳输出。

kernel_paramsdict or None (default: None)

要传递给核函数的核参数。 None 表示没有设置核参数。 对于全局对齐核,唯一感兴趣的参数是 sigma。 如果设置为 'auto',则根据训练集的采样计算 (参见 tslearn.metrics.sigma_gak)。 如果没有为 sigma 设置特定值,则默认为 1。

n_jobsint or None, optional (default=None)

用于GAK交叉相似矩阵计算的并行作业数。 None 表示1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。更多详情请参阅scikit-learn的 Glossary

verboseint (default: 0)

如果非零,将打印joblib进度消息。

random_stateinteger or numpy.RandomState, optional

用于初始化中心的生成器。如果给定一个整数,它将固定种子。默认为全局的numpy随机数生成器。

Attributes:
labels_numpy.ndarray

每个点的标签

inertia_float

样本到其最近聚类中心的距离之和(使用核技巧计算)。

sample_weight_numpy.ndarray

从提供的数据中为每个样本分配的权重。

n_iter_int

在拟合过程中执行的迭代次数。

注释

如果此模型被序列化,训练数据将被保存到磁盘,如果训练数据集很大,可能会导致模型文件很大。

参考文献

[1]

核K均值、谱聚类和归一化割。 Inderjit S. Dhillon, Yuqiang Guan, Brian Kulis. KDD 2004.

[2]

快速全局对齐核。Marco Cuturi。ICML 2011。

示例

>>> from tslearn.generators import random_walks
>>> X = random_walks(n_ts=50, sz=32, d=1)
>>> gak_km = KernelKMeans(n_clusters=3, kernel="gak", random_state=0)
>>> gak_km.fit(X)  
KernelKMeans(...)
>>> print(numpy.unique(gak_km.labels_))
[0 1 2]

方法

fit(X[, y, sample_weight])

计算核k均值聚类。

fit_predict(X[, y])

使用X拟合核k均值聚类,然后预测X中每个时间序列所属的最接近的聚类。

from_hdf5(path)

从HDF5文件加载模型。

from_json(path)

从JSON文件加载模型。

from_pickle(path)

从pickle文件加载模型。

get_metadata_routing()

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

get_params([deep])

获取此估计器的参数。

predict(X)

预测X中每个时间序列所属的最接近的聚类。

set_fit_request(*[, sample_weight])

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

set_params(**params)

设置此估计器的参数。

to_hdf5(path)

将模型保存到HDF5文件。

to_json(path)

将模型保存为JSON文件。

to_pickle(path)

将模型保存到pickle文件中。

fit(X, y=None, sample_weight=None)[source]

计算核k均值聚类。

Parameters:
Xarray-like of shape=(n_ts, sz, d)

时间序列数据集。

y

忽略

sample_weightarray-like of shape=(n_ts, ) or None (default: None)

在学习过程中给予时间序列的权重。默认情况下,所有时间序列的权重都是相等的。

fit_predict(X, y=None)[source]

使用X拟合核k均值聚类,然后预测X中每个时间序列所属的最接近的聚类。

使用此方法比依次调用 fit 和 predict 更高效。

Parameters:
Xarray-like of shape=(n_ts, sz, d)

要预测的时间序列数据集。

y

忽略

Returns:
labelsarray of shape=(n_ts, )

每个样本所属的集群索引。

classmethod from_hdf5(path)[source]

从HDF5文件加载模型。 需要 h5py http://docs.h5py.org/

Parameters:
pathstr

文件的完整路径。

Returns:
Model instance
classmethod from_json(path)[source]

从JSON文件加载模型。

Parameters:
pathstr

文件的完整路径。

Returns:
Model instance
classmethod from_pickle(path)[source]

从pickle文件加载模型。

Parameters:
pathstr

文件的完整路径。

Returns:
Model instance
get_metadata_routing()[source]

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

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

Returns:
routingMetadataRequest

一个封装了路由信息的MetadataRequest

get_params(deep=True)[source]

获取此估计器的参数。

Parameters:
deepbool, default=True

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

Returns:
paramsdict

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

predict(X)[source]

预测X中每个时间序列所属的最接近的聚类。

Parameters:
Xarray-like of shape=(n_ts, sz, d)

要预测的时间序列数据集。

Returns:
labelsarray of shape=(n_ts, )

每个样本所属的集群索引。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') KernelKMeans[source]

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

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

每个参数的选项是:

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

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

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

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

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

版本1.3中的新功能。

注意

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

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

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

Returns:
selfobject

更新后的对象。

set_params(**params)[source]

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

to_hdf5(path)[source]

将模型保存到HDF5文件。 需要 h5py http://docs.h5py.org/

Parameters:
pathstr

完整文件路径。文件必须不存在。

Raises:
FileExistsError

如果已经存在具有相同路径的文件。

to_json(path)[source]

将模型保存到JSON文件。

Parameters:
pathstr

完整文件路径。

to_pickle(path)[source]

将模型保存到pickle文件中。

Parameters:
pathstr

完整文件路径。

使用tslearn.clustering.KernelKMeans的示例

Kernel k-means

Kernel k-means