SVM和GAK

这个例子说明了全局对齐核(GAK)在支持向量分类中的应用。

该指标定义在tslearn.metrics模块中,并在[1]中有详细解释。

在这个例子中,使用GAK作为核的TimeSeriesSVC模型被拟合,并且报告了每个类别的支持向量。

[1] M. Cuturi, “快速全局对齐核,” ICML 2011.

Support vectors for class 1, Support vectors for class 2, Support vectors for class 3, Support vectors for class 4
Correct classification rate: 1.0

# Author: Romain Tavenard
# License: BSD 3 clause

import numpy
import matplotlib.pyplot as plt

from tslearn.datasets import CachedDatasets
from tslearn.preprocessing import TimeSeriesScalerMinMax
from tslearn.svm import TimeSeriesSVC

numpy.random.seed(0)
X_train, y_train, X_test, y_test = CachedDatasets().load_dataset("Trace")
X_train = TimeSeriesScalerMinMax().fit_transform(X_train)
X_test = TimeSeriesScalerMinMax().fit_transform(X_test)

clf = TimeSeriesSVC(kernel="gak", gamma=.1)
clf.fit(X_train, y_train)
print("Correct classification rate:", clf.score(X_test, y_test))

n_classes = len(set(y_train))

plt.figure()
support_vectors = clf.support_vectors_
for i, cl in enumerate(set(y_train)):
    plt.subplot(n_classes, 1, i + 1)
    plt.title("Support vectors for class %d" % cl)
    for ts in support_vectors[i]:
        plt.plot(ts.ravel())

plt.tight_layout()
plt.show()

脚本总运行时间: (0 分钟 15.561 秒)

Gallery generated by Sphinx-Gallery