为了构建一个监督学习模型,我已经获取了感兴趣变量的每日标准差。我希望找到每日标准差的聚类,即第一组具有最小的标准差,第二组标准差较大,依此类推。
聚类结果将为CART算法提供分类标签。推测有4个类别。
我有一个二维矩阵,包含日期’X’和每日标准差’y-true’。将日期列转换为数值后:
mat.X = pd.to_numeric(mat['X'])
使用sklearn库中的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轴的标准差数据进行聚类。这种方法是否合适?是否应该交换列以聚类标准差数据?
回答:
你说你只想对标准差进行聚类,但你实际上是在两个维度上进行聚类,即标准差和日期。
试试这个方法。
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')