时间序列数据聚类有问题吗?

时间:2018-11-04 08:46:27

标签: python time-series cluster-analysis dtw

我想对200种加密货币进行聚类分析,并使用“ tslearn”模块。 每种货币都有365条记录,但某些货币则更少 我喜欢使用3种聚类分析方法进行比较。

我的问题是

  1. 重心计算属于聚类分析方法吗?如果是,此方法可以将货币数据聚类吗?

  2. 是否有用于验证K值的函数? 用于确定最适合进行聚类分析的K值。

  3. 在此模块中,有任何用于集群验证的功能可以显示哪种方法是最好的?

  4. 图片下方的
  5. ,此代码有什么问题,为什么结果是“ nan”? 我的数据形状是>> print(formatted_dataset.shape)

  6. 中的(200,365,1)

对于下面的代码,我喜欢使用DTW距离进行测量,如何选择DTW?

import pandas as pd
import numpy as np
%matplotlib inline
import seaborn as sns
from matplotlib import pyplot as plt
from datetime import datetime
from dateutil.parser import parse
import string
from datetime import date

#K shape
    seed = 0
    numpy.random.seed(seed)
    formatted_dataset = TimeSeriesScalerMeanVariance().fit_transform(formatted_dataset[:200])
    sz = formatted_dataset.shape[2]

    #Euclidean k-means
    ks = KShape(n_clusters=3, verbose=True, random_state=seed)
    y_pred = ks.fit_predict(formatted_dataset)

    plt.figure()
    for yi in range(3):
    plt.subplot(3, 1, 1 + yi)
    for xx in formatted_dataset[y_pred == yi]:
    plt.plot(xx.ravel(), "k-", alpha=.2)
    plt.plot(ks.cluster_centers_[yi].ravel(), "r-")
    plt.xlim(0, sz)
    plt.ylim(-4, 4)
    plt.title("Cluster %d" % (yi + 1))

    plt.tight_layout()
    plt.show()

Rusult of code

Rusult of code

0 个答案:

没有答案