当数据集很小的时候,使用tslearn的kshape得到的簇的聚点最开头形状和该簇形状不符合是为什么啊?
比如同一簇开头是大幅上升的形状,但是通过ks.cluster_centers_[yi].ravel()画出来的聚点的开头是大幅下降的形状。
是我的代码有什么问题吗?
以及kshape中seed的设置有什么好的方法吗?不同seed出来的结果一致,但聚点和聚类效果不一样,怎么找到一个比较合适的seed。
求指教!
import numpy as np
from tslearn.clustering import KShape
from tslearn.preprocessing import TimeSeriesScalerMeanVariance
X = TimeSeriesScalerMeanVariance(mu=0.0, std=1.0).fit_transform(X) # 标准化数据
ks = KShape(n_clusters=num_cluster, n_init=5, verbose=True, random_state=seed)
y_pred = ks.fit_predict(X) # 训练模型
dists = ks._cross_dists(X)
np.fill_diagonal(dists, 0)
# …… 省略部分代码
plt.plot(ks.cluster_centers_[yi].ravel(), "r-") # 画聚点的代码
实际图不方便展示,手动画了个图,灰色为原始数据,红色为聚点。