由上述对图书借阅数量与借阅人数之间的直方图中,可以清晰地展示一年以来,读者借书数量的情况分布,那么在这个分布的情况下,读者借阅又有怎样的特点呢?
      对于图书馆的读者而言,有的读者借阅频率高,对图书的利用也比较充分,具有大量的借书行为;而有的读者则很少出现在图书馆,或是仅仅借阅与专业相关的部分书籍。对不同读者的借阅需求进行聚类分析,分析读者的平均借阅情况。

# -*-coding:utf-8-*-

import pandas as pd
"""
    对借书数量进行聚类分析
"""
"""
    加载数据
"""
pf = pd.read_csv('cluster.csv')
pf.columns = ['x', 'y']  # 重命名
print pf
print len(pf)
print pf['x'][5]

X = []
for i in range(len(pf)):
    n = []
    n.append(pf['x'][i])
    n.append(pf['y'][i])
    X.append(n)
print 'X=', X

"""
    聚类分析
"""
from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=7)
print kmeans
predict = kmeans.fit_predict(X)
print predict

"""
    作图
"""
import matplotlib.pyplot as plt

# 获取第一列和第二列数据 使用for循环获取 n[0]表示X第一列
x = [n[0] for n in X]
print x
y = [n[1] for n in X]
print y

# 绘制散点图 参数:x横轴 y纵轴 c=y_pred聚类预测结果 marker类型 o表示圆点 *表示星型 x表示点
plt.scatter(x, y, c=predict, marker='x')

# 绘制标题
plt.title("Kmeans-Borrow books with Students")

# 绘制x轴和y轴坐标
plt.xlabel("The number of Borrow books")
plt.ylabel("The number of Students")

# 显示图形
plt.show()

这里写图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐