tslearn.svm.TimeSeriesSVC

class tslearn.svm.TimeSeriesSVC(C=1.0, kernel='gak', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, n_jobs=None, verbose=0, max_iter=-1, decision_function_shape='ovr', random_state=None)[source]

时间序列特定的支持向量分类器。

Parameters:
Cfloat, optional (default=1.0)

误差项的惩罚参数C。

kernelstring, optional (default=’gak’)

指定算法中使用的核类型。 它必须是‘gak’或sklearn.svm.SVC接受的核之一。 如果未给出,将使用‘gak’。如果给出了一个可调用对象,它用于从数据矩阵预计算核矩阵;该矩阵应为形状为(n_samples, n_samples)的数组。

degreeint, optional (default=3)

多项式核函数的次数('poly')。 所有其他核函数忽略此参数。

gammafloat, optional (default=’auto’)

‘gak’、‘rbf’、‘poly’ 和 ‘sigmoid’ 的核系数。 如果 gamma 是 ‘auto’,则:

  • 对于‘gak’核,它是基于训练集的采样计算的(参见tslearn.metrics.gamma_soft_dtw

  • 对于其他内核(例如‘rbf’),将使用1/n_features。

coef0float, optional (default=0.0)

核函数中的独立项。 它仅在‘poly’和‘sigmoid’中显著。

shrinkingboolean, optional (default=True)

是否使用收缩启发式方法。

probabilityboolean, optional (default=False)

是否启用概率估计。这必须在调用fit之前启用,并且会减慢该方法的速度。此外,概率估计不能保证与预测输出匹配。有关更多详细信息,请参阅我们的专用用户指南部分

tolfloat, optional (default=1e-3)

停止准则的容差。

cache_sizefloat, optional (default=200.0)

指定内核缓存的大小(以MB为单位)。

class_weight{dict, ‘balanced’}, optional

将类i的参数C设置为class_weight[i]*C用于SVC。如果未给出,则假定所有类的权重为一。 “balanced”模式使用y的值自动调整权重,与输入数据中的类频率成反比,如n_samples / (n_classes * np.bincount(y))

n_jobsint or None, optional (default=None)

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

verboseint, default: 0

启用详细输出。请注意,此设置利用了libsvm中的每个进程运行时设置,如果启用,在多线程环境中可能无法正常工作。

max_iterint, optional (default=-1)

求解器内的迭代次数硬限制,或-1表示无限制。

decision_function_shape‘ovo’, ‘ovr’, default=’ovr’

是否返回一个形状为(n_samples, n_classes)的一对多('ovr')决策函数,如所有其他分类器,或者返回libsvm的原始一对一('ovo')决策函数,其形状为(n_samples, n_classes * (n_classes - 1) / 2)。

random_stateint, RandomState instance or None, optional (default=None)

用于打乱数据时使用的伪随机数生成器的种子。如果是整数,random_state 是随机数生成器使用的种子;如果是 RandomState 实例,random_state 是随机数生成器;如果是 None,则随机数生成器是 np.random 使用的 RandomState 实例。

Attributes:
support_array-like, shape = [n_SV]

支持向量的索引。

n_support_array-like, dtype=int32, shape = [n_class]

每个类别的支持向量数量。

support_vectors_list of arrays of shape [n_SV, sz, d]

tslearn 数据集格式中的支持向量列表,每个类一个数组

dual_coef_array, shape = [n_class-1, n_SV]

决策函数中支持向量的系数。 对于多类问题,是所有1对1分类器的系数。 在多类情况下,系数的布局有些复杂。详情请参阅sklearn用户指南中SVM部分关于多类分类的部分。

coef_array, shape = [n_class-1, n_features]

分配给特征的权重(原始问题中的系数)。这仅在线性核的情况下可用。coef_ 是一个只读属性,源自 dual_coef_support_vectors_

intercept_array, shape = [n_class * (n_class-1) / 2]

决策函数中的常量。

svm_estimator_sklearn.svm.SVC

底层的sklearn估计器

参考文献

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

示例

>>> from tslearn.generators import random_walk_blobs
>>> X, y = random_walk_blobs(n_ts_per_blob=10, sz=64, d=2, n_blobs=2)
>>> clf = TimeSeriesSVC(kernel="gak", gamma="auto", probability=True)
>>> clf.fit(X, y).predict(X).shape
(20,)
>>> sv = clf.support_vectors_
>>> len(sv)  # should be equal to the nr of classes in the clf problem
2
>>> sv[0].shape  
(..., 64, 2)
>>> sv_sum = sum([sv_i.shape[0] for sv_i in sv])
>>> sv_sum == clf.svm_estimator_.n_support_.sum()
True
>>> clf.decision_function(X).shape
(20,)
>>> clf.predict_log_proba(X).shape
(20, 2)
>>> clf.predict_proba(X).shape
(20, 2)

方法

decision_function(X)

评估X中样本的决策函数。

fit(X, y[, sample_weight])

根据给定的训练数据拟合SVM模型。

get_metadata_routing()

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

get_params([deep])

获取此估计器的参数。

predict(X)

预测给定时间序列的类别。

predict_log_proba(X)

预测给定时间序列集的类别对数概率。

predict_proba(X)

预测给定时间序列集的类别概率。

score(X, y[, sample_weight])

返回给定测试数据和标签的平均准确率。

set_fit_request(*[, sample_weight])

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

set_params(**params)

设置此估计器的参数。

set_score_request(*[, sample_weight])

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

decision_function(X)[source]

评估X中样本的决策函数。

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

时间序列数据集。

Returns:
ndarray of shape (n_samples, n_classes * (n_classes-1) / 2)

返回模型中每个类别的样本的决策函数。 如果decision_function_shape=’ovr’,形状为(n_samples, n_classes)。

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

根据给定的训练数据拟合SVM模型。

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

时间序列数据集。

yarray-like of shape=(n_ts, )

时间序列标签。

sample_weightarray-like of shape (n_samples,), default=None

每个样本的权重。重新调整每个样本的C值。较高的权重迫使分类器更加重视这些点。

get_metadata_routing()[source]

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

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

Returns:
routingMetadataRequest

一个封装了路由信息的MetadataRequest

get_params(deep=True)[source]

获取此估计器的参数。

Parameters:
deepbool, default=True

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

Returns:
paramsdict

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

predict(X)[source]

预测给定时间序列集合的类别。

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

时间序列数据集。

Returns:
array of shape=(n_ts, ) or (n_ts, n_classes), depending on the shape
of the label vector provided at training time.

每个样本所属的集群索引或类概率矩阵,取决于训练时提供的内容。

predict_log_proba(X)[source]

预测给定时间序列集的类别对数概率。

请注意,概率估计不一定与预测输出相匹配。 详情请参阅我们的专用用户指南部分

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

时间序列数据集。

Returns:
array of shape=(n_ts, n_classes),

类别概率矩阵。

predict_proba(X)[source]

预测给定时间序列集合的类别概率。

请注意,概率估计不保证与预测输出匹配。 详情请参阅我们的专用用户指南部分

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

时间序列数据集。

Returns:
array of shape=(n_ts, n_classes),

类别概率矩阵。

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

返回给定测试数据和标签的平均准确率。

在多标签分类中,这是子集准确率,这是一个严格的指标,因为您要求每个样本的每个标签集都被正确预测。

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

测试样本。

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

X的真实标签。

sample_weightarray-like of shape (n_samples,), default=None

样本权重。

Returns:
scorefloat

self.predict(X) 相对于 y 的平均准确率。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TimeSeriesSVC[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

估计器实例。

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

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

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

每个参数的选项是:

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

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

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

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

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

版本1.3中的新功能。

注意

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

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

元数据路由用于score中的sample_weight参数。

Returns:
selfobject

更新后的对象。

使用tslearn.svm.TimeSeriesSVC的示例

SVM和GAK

SVM and GAK