Python数据挖掘—聚类—KMeans划分法

概念

  • 聚类分析:是按照个体的特征将它们分类,让同一个类别内的个体之间具有较高的相似度,不同类别之间具有较大差异性
  • 无分类目标变量(Y)——无监督学习

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

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 

猜你喜欢

转载自www.cnblogs.com/U940634/p/9758300.html
今日推荐