为了构建一个有监督的学习模型,我每天都会对感兴趣的变量进行st.dev。我想找到每日st.dev的集群,即具有最小st.dev的第1组,具有更大的第2组等等。
聚类的结果将为CART算法提供分类标签。怀疑有4个班级。
我有一个日期为'X'的二维矩阵,以及每日st.dev'y-true'。将日期列转换为数字后:
mat.X = pd.to_numeric(mat['X'])
在sklearn lib中使用k-means,结果如下:
kmeans = KMeans(n_clusters=3)
kmeans = kmeans.fit(mat)]
labels = kmeans.predict(mat)
plt.scatter(mat[:,0],mat[:,1], c=kmeans.labels_, cmap='rainbow')
结果没有聚集Y轴的st.dev数据。这是一个很好的方法吗?是否应该将列切换为集群st.dev数据?
答案 0 :(得分:1)
你说你想只在std-dev上集群,但是你在两个维度上集群,即std-dev和日期。
试试这个。
kmeans = KMeans(n_clusters=3)
kmeans = kmeans.fit(mat[:, 1])]
labels = kmeans.predict(mat[:, 1])
plt.scatter(mat[:,0],mat[:,1], c=labels, cmap='rainbow')