Python数据挖掘建模 chapter_3 聚类

1.常用聚类

划分方法K-meas,K-MEDOIDS,CLARNS
层次分析法BIRCH,CURE,CHAMELEON
基于密度DBSAN,DENCLUE,OPTICS
基于网格STING,CLIOUE,WAVE-CLUSTER

2.数据度量:欧几里得算法、曼哈顿距离、闵可夫斯基距离

3.聚类主要算法(sklearn.cluster)

Kmeansk均值聚类
AffinityPropagation吸引力传播聚类
MeanShift均值飘移聚类
SpectralCluster谱聚类
AgglomerativeCluster层次聚类
DBSCAN有噪声基于密度聚类
BIRCH综合层次聚类,大规模聚类

数据举例 data.xls

Id R F M
1 27 6 232.61
2 3 5 1507.11
3 4 16 817.62
4 3 11 232.81
5 14 7 1913.05
6 19 6 220.07
7 5 2 615.83
8 26 2 1059.66
9 21 9 304.82
10 2 21 1227.96
...      


#-*- coding: utf-8 -*-
#使用K-Means算法聚类消费行为特征数据

import pandas as pd

#参数初始化
inputfile = 'data.xls' #销量及其他属性数据
outputfile = 'data_result.xls' #保存结果的文件名
k = 3 #聚类的类别
iteration = 500 #聚类最大循环次数
data = pd.read_excel(inputfile, index_col = 'Id') #读取数据
data_zs = 1.0*(data - data.mean())/data.std() #数据标准化

from sklearn.cluster import KMeans
model = KMeans(n_clusters = k, n_jobs = 1, max_iter = iteration) #分为k类,并发数1
model.fit(data_zs) #开始聚类

#简单打印结果
r1 = pd.Series(model.labels_).value_counts() #统计各个类别的数目
r2 = pd.DataFrame(model.cluster_centers_) #找出聚类中心
r = pd.concat([r2, r1], axis = 1) #横向连接(0是纵向),得到聚类中心对应的类别下的数目
r.columns = list(data.columns) + [u'num_clarify'] #类别数目
print(r)

#详细输出原始数据及其类别
r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)  #详细输出每个样本对应的类别
r.columns = list(data.columns) + [u'cluster_clarify'] #聚类类别
r.to_excel(outputfile) 


def density_plot(data): #作图函数
  import matplotlib.pyplot as plt
  plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
  plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
  p = data.plot(kind='kde', linewidth = 2, subplots = True, sharex = False)
  [p[i].set_ylabel(u'midu') for i in range(k)]
  plt.legend()
  return plt

pic_output = 'pd_'
for i in range(k):
  density_plot(data[r[u'cluster_clarify']==i]).savefig(u'%s%s.png' %(pic_output, i))



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据挖掘建模中的聚类是一种将数据集中的样本分成不同的簇或类别的技术。聚类算法可以帮助我们发现数据中的隐藏模式和结构,从而更好地理解数据。其中一种常用的聚类算法是K-Means算法。 在Python中实现K-Means聚类算法需要以下几个步骤: 1. 导入数据并进行标准化:首先,需要导入数据集并进行标准化处理。标准化可以使得不同特征之间的值具有相同的尺度,避免某些特征对聚类结果的影响过大。 2. 构建K-Means模型:使用sklearn库中的KMeans类,设置聚类的类别数k,并指定一些参数如最大循环次数和随机种子等。然后,使用.fit()方法拟合模型并进行聚类。 3. 分析聚类结果:根据聚类结果,可以进行一些进一步的分析,如查看每个簇的样本数量、簇的聚类中心等。可以使用聚类模型的属性和方法来获取这些信息。 需要注意的是,在聚类分析中,评估聚类模型结果的好坏是比较主观的,通常需要根据具体问题来判断。常用的评估指标有轮廓系数和内部评价指标等,可以根据需要选择适合的评估方法。 综上所述,Python数据挖掘建模中的聚类可以帮助我们发现数据集中的模式和结构,并根据聚类结果进行进一步的分析和应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【Python数据分析】数据挖掘建模——聚类分析](https://blog.csdn.net/weixin_41168304/article/details/122747347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [代码实操:Python聚类分析](https://download.csdn.net/download/weixin_44510615/88231861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值