tslearn.clustering.TimeSeriesKMeans¶
- class tslearn.clustering.TimeSeriesKMeans(n_clusters=3, max_iter=50, tol=1e-06, n_init=1, metric='euclidean', max_iter_barycenter=100, metric_params=None, n_jobs=None, dtw_inertia=False, verbose=0, random_state=None, init='k-means++')[source]¶
用于时间序列数据的K均值聚类。
- Parameters:
- n_clustersint (default: 3)
要形成的集群数量。
- max_iterint (default: 50)
单次运行中k-means算法的最大迭代次数。
- tolfloat (default: 1e-6)
惯性变化阈值。如果在某一点上,惯性在两次连续迭代之间的变化小于此阈值,则认为模型已经收敛,算法停止。
- n_initint (default: 1)
k-means算法将使用不同的质心种子运行的次数。最终结果将是n_init连续运行中惯性最佳的输出。
- metric{“euclidean”, “dtw”, “softdtw”} (default: “euclidean”)
用于聚类分配和重心计算的度量。如果使用“dtw”,则使用DBA进行重心计算。
- max_iter_barycenterint (default: 100)
重心计算过程的迭代次数。仅在metric=”dtw”或metric=”softdtw”时使用。
- metric_paramsdict or None (default: None)
所选指标的参数值。 对于接受交叉距离矩阵计算并行化的指标,metric_params中传递的n_jobs键会被n_jobs参数覆盖。
- n_jobsint or None, optional (default=None)
用于并行运行交叉距离矩阵计算的任务数量。 如果无法使用并行化计算交叉距离矩阵,则忽略此设置。
None表示 1,除非在joblib.parallel_backend上下文中。-1表示使用所有处理器。有关更多详细信息,请参阅 scikit-learns 的 Glossary。- dtw_inertia: bool (default: False)
即使DTW不是选择的度量标准,是否计算DTW惯性。
- verboseint (default: 0)
如果非零,打印关于学习模型时的惯性信息,并打印joblib进度消息。
- random_stateinteger or numpy.RandomState, optional
用于初始化中心的生成器。如果给定一个整数,它将固定种子。默认为全局的numpy随机数生成器。
- init{‘k-means++’, ‘random’ or an ndarray} (default: ‘k-means++’)
初始化方法: ‘k-means++’ : 使用k-means++启发式方法。更多信息请参见scikit-learn的k_init_。 ‘random’: 从数据中随机选择k个观测值(行)作为初始质心。 如果传递了一个ndarray,它应该是形状为(n_clusters, ts_size, d)的数组,并给出初始中心。
- Attributes:
- labels_numpy.ndarray
每个点的标签。
- cluster_centers_numpy.ndarray of shape (n_clusters, sz, d)
聚类中心。 sz 是在拟合时使用的时间序列的大小,如果初始化方法是 'k-means++' 或 'random',并且如果通过 init 参数提供的最长初始质心的大小。
- inertia_float
样本到其最近聚类中心的距离之和。
- n_iter_int
在拟合过程中执行的迭代次数。
注释
如果 metric 设置为 “euclidean”,算法期望一个等长时间序列的数据集。
示例
>>> from tslearn.generators import random_walks >>> X = random_walks(n_ts=50, sz=32, d=1) >>> km = TimeSeriesKMeans(n_clusters=3, metric="euclidean", max_iter=5, ... random_state=0).fit(X) >>> km.cluster_centers_.shape (3, 32, 1) >>> km_dba = TimeSeriesKMeans(n_clusters=3, metric="dtw", max_iter=5, ... max_iter_barycenter=5, ... random_state=0).fit(X) >>> km_dba.cluster_centers_.shape (3, 32, 1) >>> km_sdtw = TimeSeriesKMeans(n_clusters=3, metric="softdtw", max_iter=5, ... max_iter_barycenter=5, ... metric_params={"gamma": .5}, ... random_state=0).fit(X) >>> km_sdtw.cluster_centers_.shape (3, 32, 1) >>> X_bis = to_time_series_dataset([[1, 2, 3, 4], ... [1, 2, 3], ... [2, 5, 6, 7, 8, 9]]) >>> km = TimeSeriesKMeans(n_clusters=2, max_iter=5, ... metric="dtw", random_state=0).fit(X_bis) >>> km.cluster_centers_.shape (2, 6, 1)
方法
fit(X[, y])计算k均值聚类。
fit_predict(X[, y])使用X拟合k-means聚类,然后预测X中每个时间序列所属的最接近的聚类。
fit_transform(X[, y])拟合数据,然后转换它。
from_hdf5(path)从HDF5文件加载模型。
from_json(path)从JSON文件加载模型。
from_pickle(path)从pickle文件加载模型。
获取此对象的元数据路由。
get_params([deep])获取此估计器的参数。
predict(X)预测X中每个时间序列所属的最接近的聚类。
set_output(*[, transform])设置输出容器。
set_params(**params)设置此估计器的参数。
to_hdf5(path)将模型保存到HDF5文件。
to_json(path)将模型保存为JSON文件。
to_pickle(path)将模型保存到pickle文件中。
transform(X)将X转换为聚类距离空间。
- fit_predict(X, y=None)[source]¶
使用X拟合k-means聚类,然后预测X中每个时间序列所属的最接近的聚类。
使用此方法比依次调用 fit 和 predict 更高效。
- Parameters:
- Xarray-like of shape=(n_ts, sz, d)
要预测的时间序列数据集。
- y
忽略
- Returns:
- labelsarray of shape=(n_ts, )
每个样本所属的集群索引。
- fit_transform(X, y=None, **fit_params)[source]¶
拟合数据,然后进行转换。
将转换器拟合到X和y,并使用可选参数fit_params,返回X的转换版本。
- Parameters:
- Xarray-like of shape (n_samples, n_features)
输入样本。
- yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None
目标值(无监督转换时为None)。
- **fit_paramsdict
额外的拟合参数。
- Returns:
- X_newndarray array of shape (n_samples, n_features_new)
转换后的数组。
- classmethod from_hdf5(path)[source]¶
从HDF5文件加载模型。 需要
h5pyhttp://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_output(*, transform=None)[source]¶
设置输出容器。
请参阅Introducing the set_output API 以了解如何使用API的示例。
- Parameters:
- transform{“default”, “pandas”}, default=None
配置transform和fit_transform的输出。
“default”: 转换器的默认输出格式
“pandas”: DataFrame 输出
None: 转换配置未更改
- Returns:
- selfestimator instance
估计器实例。
- set_params(**params)[source]¶
设置此估计器的参数。
该方法适用于简单的估计器以及嵌套对象(如
Pipeline)。后者具有形式为<component>__<parameter>的参数,以便可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- to_hdf5(path)[source]¶
将模型保存到HDF5文件。 需要
h5pyhttp://docs.h5py.org/- Parameters:
- pathstr
完整文件路径。文件必须不存在。
- Raises:
- FileExistsError
如果已经存在具有相同路径的文件。