【发布时间】:2020-07-18 13:45:35
【问题描述】:
我测量了在不同运行条件下运行的风力涡轮机的数据(振动)。我的数据集包含操作条件以及我从测量数据中提取的测量特征。
数据集形状:(423, 15)。 423 个数据点中的每一个都代表一天的测量值,按时间顺序超过 423 天。
我现在想对数据进行聚类以查看测量值是否有任何变化。具体来说,我想检查振动是否随时间变化(这可能表明涡轮齿轮箱出现故障)。
我目前做了什么:
- 在 0,1 之间缩放数据 ->
- 执行 PCA(从 15 减少到 5)
- 集群使用db scan,因为我不知道集群的数量。我正在使用此代码在 dbscan 中找到最佳 epsilon (eps):
# optimal Epsilon (distance):
X_pca = principalDf.values
neigh = NearestNeighbors(n_neighbors=2)
nbrs = neigh.fit(X_pca)
distances, indices = nbrs.kneighbors(X_pca)
distances = np.sort(distances, axis=0)
distances = distances[:,1]
plt.plot(distances,color="#0F215A")
plt.grid(True)
- 目前的结果并未明确表明数据会随时间发生变化:
当然,这种情况可能是数据没有在这些数据点上发生变化。但是,我还可以尝试哪些其他方法?有点悬而未决的问题,但我的想法已经不多了。
【问题讨论】:
标签: python cluster-analysis signal-processing unsupervised-learning