TimeSeriesSVR#
- class tslearn.svm.TimeSeriesSVR(C=1.0, kernel='gak', degree=3, gamma='auto', coef0=0.0, tol=0.001, epsilon=0.1, shrinking=True, cache_size=200, n_jobs=None, verbose=0, max_iter=-1, random_state=None)[source]#
Time-series specific Support Vector Regressor.
- Parameters:
- Cfloat, optional (default=1.0)
Penalty parameter C of the error term.
- kernelstring, optional (default=’gak’)
Specifies the kernel type to be used in the algorithm. It must be one of ‘gak’ or a kernel accepted by
sklearn.svm.SVC. If none is given, ‘gak’ will be used. If a callable is given it is used to pre-compute the kernel matrix from data matrices; that matrix should be an array of shape(n_samples, n_samples).- degreeint, optional (default=3)
Degree of the polynomial kernel function (‘poly’). Ignored by all other kernels.
- gammafloat, optional (default=’auto’)
Kernel coefficient for ‘gak’, ‘rbf’, ‘poly’ and ‘sigmoid’. For ‘gak’ kernel, a RuntimeError is raised at fit time when value is close to 0 and therefore not compatible with ‘gak’ kernel.
If gamma is ‘auto’ then:
for ‘gak’ kernel, it is computed based on a sampling of the training set (cf tslearn.metrics.gamma_soft_dtw). A RuntimeError is raised at fit time when computed value is close to 0 and therefore not compatible with ‘gak’ kernel.
for other kernels (eg. ‘rbf’), 1/n_features will be used.
- coef0float, optional (default=0.0)
Independent term in kernel function. It is only significant in ‘poly’ and ‘sigmoid’.
- tolfloat, optional (default=1e-3)
Tolerance for stopping criterion.
- epsilonfloat, optional (default=0.1)
Epsilon in the epsilon-SVR model. It specifies the epsilon-tube within which no penalty is associated in the training loss function with points predicted within a distance epsilon from the actual value.
- shrinkingboolean, optional (default=True)
Whether to use the shrinking heuristic.
- cache_sizefloat, optional (default=200.0)
Specify the size of the kernel cache (in MB).
- n_jobsint or None, optional (default=None)
The number of jobs to run in parallel for GAK cross-similarity matrix computations.
Nonemeans 1 unless in ajoblib.parallel_backendcontext.-1means using all processors. See scikit-learns’ Glossary for more details.- verboseint, default: 0
Enable verbose output. Note that this setting takes advantage of a per-process runtime setting in libsvm that, if enabled, may not work properly in a multithreaded context.
- max_iterint, optional (default=-1)
Hard limit on iterations within solver, or -1 for no limit.
- random_stateint, RandomState instance or None, optional (default=None)
The seed of the pseudo random number generator to use when shuffling the data. If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random.
- Attributes:
- support_array-like, shape = [n_SV]
Indices of support vectors.
- support_vectors_array of shape [n_SV, sz, d]
Support vectors in tslearn dataset format
- dual_coef_array, shape = [1, n_SV]
Coefficients of the support vector in the decision function.
- coef_array, shape = [1, n_features]
Weights assigned to the features (coefficients in the primal problem). This is only available in the case of a linear kernel. coef_ is readonly property derived from dual_coef_ and support_vectors_.
- intercept_array, shape = [1]
Constants in decision function.
- svm_estimator_sklearn.svm.SVR
The underlying sklearn estimator
References
Fast Global Alignment Kernels. Marco Cuturi. ICML 2011.
Examples
>>> from tslearn.generators import random_walk_blobs >>> X, y = random_walk_blobs(n_ts_per_blob=10, sz=64, d=2, n_blobs=2) >>> import numpy >>> y = y.astype(float) + numpy.random.randn(20) * .1 >>> reg = TimeSeriesSVR(kernel="gak", gamma="auto") >>> reg.fit(X, y).predict(X).shape (20,) >>> sv = reg.support_vectors_ >>> sv.shape (..., 64, 2) >>> sv.shape[0] <= 20 True
Methods
fit(X, y[, sample_weight])Fit the SVM model according to the given training data.
Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
predict(X)Predict class for a given set of time series.
score(X, y[, sample_weight])Return coefficient of determination on test data.
set_fit_request(*[, sample_weight])Configure whether metadata should be requested to be passed to the
fitmethod.set_params(**params)Set the parameters of this estimator.
set_score_request(*[, sample_weight])Configure whether metadata should be requested to be passed to the
scoremethod.- fit(X, y, sample_weight=None)[source]#
Fit the SVM model according to the given training data.
- Parameters:
- Xarray-like of shape=(n_ts, sz, d)
Time series dataset.
- yarray-like of shape=(n_ts, )
Time series labels.
- sample_weightarray-like of shape (n_samples,), default=None
Per-sample weights. Rescale C per sample. Higher weights force the classifier to put more emphasis on these points.
- get_metadata_routing()#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequestencapsulating routing information.
- get_params(deep=True)#
Get parameters for this estimator.
- Parameters:
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
- paramsdict
Parameter names mapped to their values.
- predict(X)[source]#
Predict class for a given set of time series.
- Parameters:
- Xarray-like of shape=(n_ts, sz, d)
Time series dataset.
- Returns:
- array of shape=(n_ts, ) or (n_ts, dim_output), depending on the shape
- of the target vector provided at training time.
Predicted targets
- score(X, y, sample_weight=None)#
Return coefficient of determination on test data.
The coefficient of determination, \(R^2\), is defined as \((1 - \frac{u}{v})\), where \(u\) is the residual sum of squares
((y_true - y_pred)** 2).sum()and \(v\) is the total sum of squares((y_true - y_true.mean()) ** 2).sum(). The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a \(R^2\) score of 0.0.- Parameters:
- Xarray-like of shape (n_samples, n_features)
Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead with shape
(n_samples, n_samples_fitted), wheren_samples_fittedis the number of samples used in the fitting for the estimator.- yarray-like of shape (n_samples,) or (n_samples, n_outputs)
True values for X.
- sample_weightarray-like of shape (n_samples,), default=None
Sample weights.
- Returns:
- scorefloat
\(R^2\) of
self.predict(X)w.r.t. y.
Notes
The \(R^2\) score used when calling
scoreon a regressor usesmultioutput='uniform_average'from version 0.23 to keep consistent with default value ofr2_score(). This influences thescoremethod of all the multioutput regressors (except forMultiOutputRegressor).
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TimeSeriesSVR#
Configure whether metadata should be requested to be passed to the
fitmethod.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True(seesklearn.set_config()). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True: metadata is requested, and passed tofitif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it tofit.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- Parameters:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_weightparameter infit.
- Returns:
- selfobject
The updated object.
- set_params(**params)#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline). The latter have parameters of the form<component>__<parameter>so that it’s possible to update each component of a nested object.- Parameters:
- **paramsdict
Estimator parameters.
- Returns:
- selfestimator instance
Estimator instance.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TimeSeriesSVR#
Configure whether metadata should be requested to be passed to the
scoremethod.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True(seesklearn.set_config()). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True: metadata is requested, and passed toscoreif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it toscore.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- Parameters:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_weightparameter inscore.
- Returns:
- selfobject
The updated object.