【数据分析】图书馆数据-04借阅情况聚类挖掘
由上述对图书借阅数量与借阅人数之间的直方图中,可以清晰地展示一年以来,读者借书数量的情况分布,那么在这个分布的情况下,读者借阅又有怎样的特点呢? 对于图书馆的读者而言,有的读者借阅频率高,对图书的利用也比较充分,具有大量的借书行为;而有的读者则很少出现在图书馆,或是仅仅借阅与专业相关的部分书籍。对不同读者的借阅需求进行聚类分析,分析读者的平均借阅情况。# -*-coding:utf-8
·
由上述对图书借阅数量与借阅人数之间的直方图中,可以清晰地展示一年以来,读者借书数量的情况分布,那么在这个分布的情况下,读者借阅又有怎样的特点呢?
对于图书馆的读者而言,有的读者借阅频率高,对图书的利用也比较充分,具有大量的借书行为;而有的读者则很少出现在图书馆,或是仅仅借阅与专业相关的部分书籍。对不同读者的借阅需求进行聚类分析,分析读者的平均借阅情况。
# -*-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()
更多推荐
所有评论(0)