【发布时间】:2018-04-17 19:23:59
【问题描述】:
我被赋予了以下任务:
您希望将场传感器的数量减少到 20 个。您现在应该从上一个问题中获得一个包含所有加载向量 (pca.components_) 的数组,每个主成分一个向量,具有 137 个元素(每个传感器一个)。使用聚类对行为相同的传感器进行分组。
我的数据: 由 137 个不同的传感器和 8784 条线路组成。
标准化数据后,我发现 16 列的标准差为 0,因此将其删除(这意味着它们每次都测量相同,对吧?)
我运行以下代码:
from sklearn.decomposition import PCA
# Do your PCA here.
pca = PCA(n_components=120)
pca.fit(data['std'])
from sklearn.cluster import KMeans
X_pca = pca.transform(data['std'])
# Apply your clustering here
km = KMeans(n_clusters=20, init='k-means++',n_init=10, verbose=0);
km.fit(X_pca);
cluster_pred = km.predict(X_pca);
plt.figure(figsize=(10,5))
plt.scatter(X_pca[:,0], X_pca[:,1], c=cluster_pred, s=20, cmap='viridis')
plt.show()
现在我将所有行都聚集在一起。我该如何改变这一点,对每一列进行聚类,这样我就可以从每个聚类中选择一个传感器?
而对于选择,我应该只取每个集群的中心吗?
【问题讨论】:
-
你可以转置你的数据矩阵