概念

聚类分析:是按照个体的特征将它们分类,让同一个类别内的个体之间具有较高的相似度,不同类别之间具有较大差异性

无分类目标变量(Y)——无监督学习

K-Means划分法、DBSCAN密度法、层次聚类法

1、导入数据

1 importpandas2 from sklearn.cluster importKMeans3 from sklearn.decomposition importPCA4

5 importmatplotlib.pyplot as plt6

7 f=open("D:\\学习资料\\Python数据挖掘实战课程课件\\7.1\\data.csv",encoding='UTF-8')8 data=pandas.read_csv(f)9

10 fColumns=[11 '工作日上班时电话时长', '工作日下半时电话时长',12 '周末电话时长',13 '国际电话时长', '总电话时长', '平均每次通话时长'

14 ]

View Code

2、确定特征变量,特征变量之间的相关系数,确定因变量,重新确定特征变量

1 importmatplotlib2 from pandas.tools.plotting importscatter_matrix3

4 font={5 "family":"SimHei"}6

7 matplotlib.rc("font",**font)8 matplotlib.rcParams["axes.unicode_minus"]=False9

10 #%matplotlib qt

11

12 scatter_matrix(13 data[fColumns],14 figsize=(10,10),diagonal="hist")15

16

17 dCorr=data[fColumns].corr()18

19

20 fColumns=[21 '工作日上班时电话时长', '工作日下半时电话时长',22 '周末电话时长',23 '国际电话时长', '平均每次通话时长'

24 ]

View Code

3、降维、设定质心

1 #降维

2 pca_2=PCA(n_components=2)3 data_pca_2=pandas.DataFrame(4 pca_2.fit_transform(data[fColumns]))5

6 plt.scatter(7 data_pca_2[0],8 data_pca_2[1])9

10

11 kmModel=KMeans(n_clusters=3)12 kmModel=kmModel.fit(data[fColumns])

View Code

4、对图像分类并画图

1 #对图像进行分类

2 pTarget=kmModel.predict(data[fColumns])3

4 pandas.crosstab(pTarget,pTarget) #看每类别的个数

5

6

7 plt.scatter(8 data_pca_2[0],9 data_pca_2[1],10 c=pTarget11 )

View Code

5、不同特征量之间的相关性

1 dMean=pandas.DataFrame(columns=fColumns+["分类"])2 data_gb=data[fColumns].groupby(pTarget)3

4 i=05 for g indata_gb.groups:6 print(g)7 rMean=data_gb.get_group(g).mean() #rMean是一个series结构

8 print(rMean)9 rMean["分类"]=g #在最后追加一行

10 dMean=dMean.append(rMean,ignore_index=True) #将series添加在dataframe中

11 subData=data_gb.get_group(g)12 for column infColumns:13 print(column)14 i=i+1

15 p=plt.subplot(3,5,i)16 p.set_title(column)17 p.set_ylabel(str(g)+"分类")18 plt.hist(subData[column],bins=20)

View Code

K—mans

k:聚类算法当中的个数

means:均值算法

K-Means:使用均值算法把数据分成K个类的算法

算法目标:

是把n个样本点划分到k个类中,使得每个点都属于离它最近的质心对应的类,以之作为聚类的标准

质心

是指一个类,内部所有样本点的均值

计算步骤

第一步:取得K个初始质心:从数据中随机抽取k个点作为初始聚类的中心,由这个中心代表各个类

第二步:把每个点划分进相应的类:根据欧式距离最小原则,把每个点划分配进距离最近的类中

第三步:重新计算质心:根据均值等方法,重新计算每个类的质心

第四步:迭代计算质心:重复第二步和第三部,迭代计算质心

第五步:聚类完成:聚类中心不再发生移动

fit_transform是fit和transform的组合。

我们知道fit(x,y)在新手入门的例子中比较多,但是这里的fit_transform(x)的括号中只有一个参数,这是为什么呢?

fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法,比如降维、特征提取、标准化

然后解释为什么出来fit_transform()这个东西,下面是重点:

fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来这么个函数名,仅仅是为了写代码方便,

所以会发现transform()和fit_transform()的运行结果是一样的。

注意:运行结果一模一样不代表这两个函数可以互相替换,绝对不可以!!!

transform函数是一定可以替换为fit_transform函数的

fit_transform函数不能替换为transform函数!!!理由解释如下:

sklearn里的封装好的各种算法都要fit、然后调用各种API方法,transform只是其中一个API方法,所以当你调用除transform之外的方法,必须要先fit,为了通用的写代码,还是分开写比较好

也就是说,这个fit相对于transform而言是没有任何意义的,但是相对于整个代码而言,fit是为后续的API函数服务的,所以fit_transform不能改写为transform。

--------------------- 本文来自 陈士林 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/appleyuchi/article/details/73503282?utm_source=copy

python聚类分析如何确定分类个数_Python数据挖掘—聚类—KMeans划分法相关推荐

  1. python聚类分析如何确定分类个数_R语言做聚类分析Kmeans时确定类的个数

    K平均算法(k-means) 在下面的误差平方和图中,拐点(bend or elbow)的位置对应的x轴即k-means聚类给出的合适的类的个数. > n = 100 > g=6 > ...

  2. python聚类分析如何确定分类个数_确定聚类分析中的类别个数的方法

    1.gap statistic 以k-means聚类为例,对于一个聚类个数k,首先利用k-means聚类将样本聚成k类,然后计算k类中各类内各点与类中心的距离加和W(ki),进而计算k类的距离加和W( ...

  3. python统计中文字符的个数_python统计不同字符的个数_后端开发

    c++怎么将字符串转数字_后端开发 在"c++"中可以使用"atoi"库函数将字符串转成数字,其语法是"int atoi(const char *np ...

  4. python分类算法_python数据挖掘中的分类算法有哪些?

    一直以来,对于机器学习领域,Python都是人们津津乐道的话题,大家知道我们在用python学习机器技术时候,用到的方法内容和一般情况下的是一样的吗?想必,了解过的小伙伴一定是知道有哪些的,不知道的小 ...

  5. python函数分为哪几种_python数据挖掘常用工具有哪几种?

    原标题:python数据挖掘常用工具有哪几种? python有强大的第三方库,广泛用于数据分析,数据挖掘.机器学习等领域,下面小编整理了python数据挖掘的一些常用库,希望对各位小伙伴学习pytho ...

  6. python每行输出5个数_python打印杨辉三角及输出第m行第k个数

    1.打印杨辉三角及输出第m行第k个数 1.计算到m行,打印出k项 第m行有m项,m是正整数,因此k一定不会大于m,这个需求需要保存m行的数据,那么可以使用一个嵌套结构[[],[],[]] m=int( ...

  7. python统计中文字符的个数_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  8. python统计句子中单词个数_python练习:一行搞定-统计一句话中每个单词出现的个数...

    原博文 2018-10-04 19:42 − 一行搞定-统计一句话中每个单词出现的个数 >>> s'i am a boy a bood boy a bad boy' 方式一:> ...

  9. python统计列表中元素个数_python中计算一个列表中连续相同的元素个数方法

    python中计算一个列表中连续相同的元素个数方法 最简单的例子: a = [1,1,1,1,2,2,2,3,3,1,1,1,3] # 问:计算a中最多有几个连续的1 很明显,答案是4 如果用代码实现 ...

最新文章

  1. linux平台的链接与加载
  2. pandas从dataframe中删除一个或多个数据列
  3. ExtJS 开发调试工具大全
  4. php 某一天时间凌晨,PHP获得今天 天凌晨时间戳的例子
  5. Android中实现Launcher功能之四---滑屏初探 scrollTo 以及 scrollBy方法使用说明
  6. python模块导入_Python模块导入详解
  7. SCCM 2007 R2部署、操作详解系列之部署篇
  8. JAVA调用 keras,在TensorFlow(Python, Java)环境下使用Keras模型
  9. linux怎么将终端一分为二,Linux下的终端和作业控制
  10. EasyUI笔记(六)数据表格
  11. 计算机桌面小工具软件,win10桌面小工具(Desktop Gadgets Installer)
  12. 致敬科比:科比投篮数据可视化
  13. Confluence 附件(Attachments)宏
  14. Emu8086下载和注册
  15. python中oserror winerror,在python中将WindowsError转换为OSError
  16. pandas的自带数据集_python数据分析万字干货!一个数据集全方位解读pandas
  17. QQ群排名,引流营销做推广的好方法
  18. 基于YOLOv7的室内场景智能识别系统(源码&教程)
  19. 面试题:Lucene、Solr、ElasticSearch
  20. 使用rust和actix实现一个视频流服务器

热门文章

  1. python模块(一)
  2. centos 6 KVM 网卡桥接配置
  3. .Net Remoting(应用程序域) - Part.1(转载)
  4. HDOJ1269(迷宫城堡)
  5. .htaccess:正则表达式、重定向代码
  6. Fedora 30正在接近最终版,但首先它有一些bug需要解决
  7. android 购物车小美的店,[转载]【小美教程】买菜累啊有木有?购物车用的购物袋教程来啦.........
  8. JavaWeb中使用session保持用户登录状态
  9. 深度剖析冒泡排序机制
  10. 049_汉字Unicode编码范围