【问题标题】:How to cluster a one-dimensional dataset? [closed]如何对一维数据集进行聚类? [关闭]
【发布时间】:2021-03-15 17:30:35
【问题描述】:

如何将一维整数数据集除以簇? 示例数据图片:

.

我尝试使用 KernelDensity 和 Scipy.cluster.hierarchy 方法。不确定这些方法是否适合。

【问题讨论】:

  • 您可以使用大多数聚类方法,但只有告诉我们 x 轴上的比例是多少才有意义,而不仅仅是显示图
  • 或者你的意思是真正对你的数据进行分类?

标签: python jupyter-notebook data-science data-analysis


【解决方案1】:

您可以使用高斯混合模型之类的方法来做到这一点。这是一个例子-

import numpy as np
import pandas as pd
from sklearn.mixture import GaussianMixture
%matplotlib inline

#Sample data
x = [0,200,2,1,0,1,4,4,6,14,25,43,71,93,123,194,192]
num_components = 3

#Fit a model onto the data
data = np.array(x).reshape(-1,1)
model = GaussianMixture(n_components=num_components).fit(data)

clusters = model.predict(data)
df = pd.DataFrame(list(zip(x, clusters)), columns=['data', 'clusters'])

print(df)
    data  clusters
0      0         0
1    200         1
2      2         0
3      1         0
4      0         0
5      1         0
6      4         0
7      4         0
8      6         0
9     14         2
10    25         2
11    43         2
12    71         2
13    93         2
14   123         2
15   194         1
16   192         1

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 2013-11-25
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    相关资源
    最近更新 更多