频道栏目
首页 > 程序开发 > Web开发 > Python > 正文
直接实现Python数据分析与挖掘实战的代码
2018-05-04 11:23:30      个评论    来源:lonely2018的博客  
收藏   我要投稿

因学习中发现《Python数据分析与挖掘实战》中的代码,有些不能实现,自己学习的时候走了很多弯路,特此分享可直接实现的代码,希望能让有需要的朋友少走弯路。

#14-1 离差标准化
import pandas as pd
inputfile='../14.2/business_circle.xls'
outfile='../14.2/standardized.xls'
data=pd.read_excel(inputfile,index_col=u'基站编号')
data=(data-data.min())/(data.max()-data.min())
data=data.reset_index()
data.to_excel(outfile,index=False)

#14-2谱系聚类图
import pandas as pd
inputfile='../14.2/standardized.xls'
data=pd.read_excel(inputfile,index_col=u'基站编号')

import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import linkage,dendrogram      #scipy的层次聚类函数
Z=linkage(data,method='ward',metric='euclidean')
P=dendrogram(Z,0)
plt.show()
#14-3 层次聚类算法
import pandas as pd
inputfile='../14.2/standardized.xls'
data=pd.read_excel(inputfile,index_col=u'基站编号')
k=3

from sklearn.cluster import AgglomerativeClustering         #sklearn层次聚类函数
model=AgglomerativeClustering(n_clusters=k,linkage='ward')
model.fit(data)
r=pd.concat([data,pd.Series(model.labels_,index=data.index)],axis=1)
r.columns=list(data.columns)+[u'聚类类别']

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
style=['ro-','go-','bo-']

xlabels=[u'工作日人均停留时间',u'凌晨人均停留时间',u'周末人均停留时间',u'日均人流量']
pic_output='../14.2/type_'

for i in range(k):
    plt.figure()
    tmp=r[r[u'聚类类别']==i].iloc[:,:4]
    for j in range(len(tmp)):
        plt.plot(range(1,5),tmp.iloc[j],style[i])
        plt.xticks(range(1,5),xlabels,rotation=20)
        plt.subplots_adjust(bottom=0.15)
        plt.savefig(u'%s%s.png'%(pic_output,i))
点击复制链接 与好友分享!回本站首页
上一篇:python ex8.py代码
下一篇:python连接redis分布式服务器
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站