python - 如何使用原始数据中的id导出k-means算法的输出(簇标签)

标签 python export-to-csv k-means

我有一个总结网络的数据,包括用户的cookie id、 session id、 Material 数量以及网络中的跳转次数。我想对它们进行聚类并进一步分析它们。因此,需要知道哪个 session 中的哪个cookie id被标记在哪个集群中。示例数据:

cookie_id|ses_num|num_material|num_jump
2345         1        2           1 
2345         2        8           12
3456         1        3           2 

我已经使用最后两列应用了 k-means 聚类,但无法将聚类输出返回到正确的 id,因为我无法使用 cookie id 和 session id 作为聚类的输入。

columns = defaultdict(list) 
with open('num_jumps_materials_in_network.csv',"r") as file: 
    reader = csv.reader(file, delimiter='|', quotechar='"')
    next(reader)
    for row in reader: 
        for i, v in enumerate(row): 
           columns[i].append(v) 

cookie_id = columns[0]
ses_num = columns[1]
num_mat = columns[2]
num_jump = columns[3]

x1 = []
x2 = []

i = 0
while (i<len(num_mat)):
    a = int(num_mat[i])
    b = int(num_jump[i])
    x1.append(a)
    x2.append(b)
    i+=1

X = np.array(list(zip(x1, x2))).reshape(len(x1), 2)

# 6 according to elbow method
kmeans = KMeans(n_clusters=6)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)


fig, (ax1, ax2) = pyplot.subplots(2, figsize=(15,15))
fig.suptitle('Clustering users by k-means (k=6)')
# whole 
ax1.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=30, cmap='gist_rainbow')
# closer look 
ax2.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=30, cmap='gist_rainbow')
ax2.set_xlim([0, 500])
ax2.set_ylim([0, 500])

pyplot.savefig('k_means_clusters_demo.png')

我想输出如下结果:

cookie_id|ses_num|num_material|num_jump|cluster
2345         1        2           1        0
2345         2        8           12       2
3456         1        3           2        1

非常感谢, 答:

最佳答案

我认为数组的顺序必须像 array.sort() 中那样重新排序,但显然事实并非如此。以下内容对我有用。

clusters = kmeans.labels_
i=0 
while(i < len(clusters)):
    print(cookie_id[I],clusters[i])
    i+=1 

关于python - 如何使用原始数据中的id导出k-means算法的输出(簇标签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57853038/

相关文章:

python - Keras 中 RNN/LSTM 的 InvalidArgumentError

python - 如何在 django 中自定义 UserCreationForm 验证

python - Google AppEngine Python Cron 作业 urllib

python - Python运行时错误无法按预期工作

c# - 以CSV格式导出到EXCEL时用逗号(,)分隔字符串c#

linux - 如何将多个 html 文件中的表格提取到一个 csv 文件中?

machine-learning - 如何利用 KL 散度进行聚类?

ms-access - 在 VBS 中使用 Access DoCmd.TransferText acExportDelim 将 txt 导出到 csv

python-3.x - 如何获得离簇中心最近的N个数据点?

python - 按升序生成 Kmeans 的质心