首页 > 编程语言 >Python数据分析之K_Means

Python数据分析之K_Means

时间:2023-03-06 16:01:58浏览次数:41  
标签:数据分析 plt Means Python pd 聚类 类别 model data

 1 # -*- coding: utf-8 -*-
 2 
 3 import pandas as pd
 4 # 参数初始化
 5 inputfile = '../data/consumption_data.xls'  # 销量及其他属性数据
 6 outputfile = '../tmp/data_type.xls'  # 保存结果的文件名
 7 k = 3  # 聚类的类别
 8 iteration = 500  # 聚类最大循环次数
 9 data = pd.read_excel(inputfile, index_col = 'Id')  # 读取数据
10 data_zs = 1.0*(data - data.mean())/data.std()  # 数据标准化
11 
12 from sklearn.cluster import KMeans
13 model = KMeans(n_clusters = k, n_jobs = 4, max_iter = iteration,random_state=1234)  # 分为k类,并发数4
14 model.fit(data_zs)  # 开始聚类
15 
16 # 简单打印结果
17 r1 = pd.Series(model.labels_).value_counts()  # 统计各个类别的数目
18 r2 = pd.DataFrame(model.cluster_centers_)  # 找出聚类中心
19 r = pd.concat([r2, r1], axis = 1)  # 横向连接(0是纵向),得到聚类中心对应的类别下的数目
20 r.columns = list(data.columns) + ['类别数目']  # 重命名表头
21 print(r)
22 
23 # 详细输出原始数据及其类别
24 r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)   # 详细输出每个样本对应的类别
25 r.columns = list(data.columns) + ['聚类类别']  # 重命名表头
26 r.to_excel(outputfile)  # 保存结果
27 
28 
29 def density_plot(data):  # 自定义作图函数
30   import matplotlib.pyplot as plt
31   plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
32   plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
33   p = data.plot(kind='kde', linewidth = 2, subplots = True, sharex = False)
34   [p[i].set_ylabel('密度') for i in range(k)]
35   plt.legend()
36   return plt
37 
38 pic_output = '../tmp/pd'  # 概率密度图文件名前缀
39 for i in range(k):
40   density_plot(data[r['聚类类别']==i]).savefig('%s%s.png' %(pic_output, i))
41  
42     
43   
44   

 

 

 

 

 

 

 

标签:数据分析,plt,Means,Python,pd,聚类,类别,model,data
From: https://www.cnblogs.com/zhangfurong/p/17184207.html

相关文章

  • 企业数据分析获得认可,瓴羊Quick BI通过中国信通院测评
    “互联网+”时代,企业数据分析成为了一种核心竞争力。在此背景下,瓴羊QuickBI等商业智能工具成为了不少企业提升内部企业数据分析的关键助手。现如今,面对海量的数据资产,一家......
  • 自学Python
    myage_zhang=32count=0whilecount<3:myage=int(input("请输入你的年龄:"))ifmyage==myage_zhang:print("恭喜你,回答正确!")break......
  • python yaml变量替换
    使用场景:yaml文件的数据一般来说是写好的常量,每次读取再使用即可。但有些接口的数据每次都会变化则需要每次进行替换才能执行成功,或者当我们有多个相同字段的值都相同时......
  • 如何查看一个python程序调用了哪些库?
    今天才知道有个简单的方法:安装pipreqs就可以了!pipinstallpipreqs进入你的工程所在目录,然后输入下面的命令,等待命令运行结束后,就会生成requirements.txt文件了。(p......
  • Python--并发编程
    1.并发和并行的区别是什么?1个核,最大1个并行。可以N个并发。4个核,最大4个并行。可以N个并发。对于人的使用来讲,对并发和并行不感知。2.四核八线程是什么意思?四核八......
  • Python、C++、Swift或任何其他语言会取代Java吗?为什么?
    很难预测Python,C++,Swift或任何其他编程语言是否会取代Java作为最受欢迎的语言,但在不久的将来不太可能.以下是一些原因:受欢迎程度并建立的用法:Java已经存在了25年以上,并......
  • 2023.3.6python笔记
    Python3基本数据类型|菜鸟教程(runoob.com)了解到python基本数据类型string(字符串),tuple(元组),number(数字)   #数值不可改变list(列表),dictionary(字典),set(集合)......
  • python数据分析与挖掘实战第六章&第四章1
    第六章部分:#代码6-1描述性统计分析importnumpyasnpimportpandasaspdinputfile="data.csv"data=pd.read_csv(inputfile)#依次计算最小值,最大值,均值,标......
  • python中生产者和消费者理论
    1.模型理论生产者消费者他是一个概念,(由于生产者消费者模型并不局限于某一类技术,因此,有多种实现方式)所以,代码很简单,所以这里首先要弄懂理论。 1.1 生产者消费者模......
  • Python学习笔记(七)字符串操作
    一、数据类型转换%s字符串%d数值整数%f浮点数formatf表达式挖坑填坑法则1name='张三'2age=183height=180.545print('我的名字是%s'%name)6p......