注意
转到末尾 以下载完整的示例代码
SVM和GAK¶
这个例子说明了全局对齐核(GAK)在支持向量分类中的应用。
该指标定义在tslearn.metrics模块中,并在[1]中有详细解释。
在这个例子中,使用GAK作为核的TimeSeriesSVC模型被拟合,并且报告了每个类别的支持向量。
[1] M. Cuturi, “快速全局对齐核,” ICML 2011.
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 秒)