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)
方法
评估X中样本的决策函数。
fit(X, y[, sample_weight])根据给定的训练数据拟合SVM模型。
获取此对象的元数据路由。
get_params([deep])获取此估计器的参数。
predict(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
更新后的对象。