网站登陆模板,怎样创办网站,免费代理ip最新,漯河做网站的店前言#xff1a;Hello大家好#xff0c;我是小哥谈。聚类算法是一种无监督学习方法#xff0c;它将数据集中的对象分成若干个组或者簇#xff0c;使得同一组内的对象相似度较高#xff0c;不同组之间的对象相似度较低。聚类算法可以用于数据挖掘、图像分割、文本分类等领域… 前言Hello大家好我是小哥谈。聚类算法是一种无监督学习方法它将数据集中的对象分成若干个组或者簇使得同一组内的对象相似度较高不同组之间的对象相似度较低。聚类算法可以用于数据挖掘、图像分割、文本分类等领域。常见的聚类算法包括K-Means、层次聚类、DBSCAN、AP聚类、谱聚类等。本节课就简单介绍k-means聚类算法~ 前期回顾 第2篇 机器学习基础 —1机器学习概念和方式 第2篇 机器学习基础 —2分类和回归 第2篇 机器学习基础 —3机器学习库之Scikit-Learn 目录
1.什么是聚类
2.K-Means聚类算法
3.K-means聚类优缺点
4.聚类数据生成器 1.什么是聚类
聚类算法是一种无监督学习方法它将数据集中的对象分成若干个组或者簇使得同一组内的对象相似度较高不同组之间的对象相似度较低。聚类算法可以用于数据挖掘、图像分割、文本分类等领域。常见的聚类算法包括K-Means、层次聚类、DBSCAN、AP聚类、谱聚类等。其中K-Means是一种基于距离的聚类算法层次聚类是一种基于树形结构的聚类算法DBSCAN是一种基于密度的聚类算法AP聚类是一种基于相似度传播的聚类算法谱聚类是一种基于图论的聚类算法。每种聚类算法都有其适用的场景和优缺点。 说明♨️♨️♨️ 聚类类似于分类不同的是聚类所要求划分的类是未知的也就是说不知道应该属于哪类而是通过一定的算法自动分类。在实际应用中聚类是一个将数据集中在某些方面相似的数据中并进行分类组织的过程简单地说就是将相似数据聚在一起。 聚类的主要应用领域
商业聚类分析被用来发现不同的客户群并且通过购买模式刻画不同客户群的特征。
生物聚类分析被用来对动植物分类和对基因进行分类获取对种群固有结构的认识。
保险行业聚类分析通过一个高的平均消费来鉴定汽车保险单持有者的分组同时根据住宅类型、价值和地理位置来判断一个城市的房产分组。
因特网聚类分析被用来在网上进行文档归类。
电子商务聚类分析在电子商务网站建设数据挖掘中也是很重要的一个方面通过分组聚类出具有相似浏览行为的客户并分析客户的共同特征可以更好地帮助电商了解自己的客户向客户提供更合适的服务。
等等...... 2.K-Means聚类算法
K-Means是一种常见的聚类算法它的目标是将数据集分成K个簇使得同一簇内的数据点相似度较高不同簇之间的相似度较低。K-Means算法的基本思路是随机选择K个中心点然后将每个数据点分配到距离最近的中心点所在的簇中接着重新计算每个簇的中心点重复以上步骤直到簇不再发生变化或达到预设的迭代次数。K-Means算法的优点是简单易懂计算速度快但是需要预先指定簇的数量K且对于不同的初始中心点选择可能会得到不同的聚类结果。
k-means 算法是一种无监督学习算法目的是将相似的对象归到同一个簇中。簇内的对象越相似聚类的效果就越好。传统的聚类算法包括划分方法、层次方法、基于密度方法、基于网格方法和基于模型方法。本节主要介绍K-means 聚类算法它是划分方法中较典型的一种也可以称为k均值聚类算法。 说明♨️♨️♨️ K-means聚类也称为k均值聚类是著名的划分聚类的算法由于简洁性和高效率使得它成为所有聚类算法中应用最为广泛的一种。k均值聚类是给定一个数据点集合和需要的聚类数目kk由用户指定k均值算法将根据某个距离函数反复把数据分入k个聚类中。 K-Means聚类流程
随机选取k个点作为初始质心质心即簇中所有点的中心然后将数据集中的每个点分配到一个簇中。具体来说为每个点找距其最近的质心并将其分配给该质心所对应的簇。这一步完成之后每个簇的质心更新为该簇所有点的平均值。这个过程将不断重复直到满足某个终止条件。
终止条件可以是以下中的任何一个
没有或最小数目对象被重新分配给不同的聚类。没有或最小数目聚类中心再发生变化。误差平方和局部最小。
通过以上介绍相信您对K-means聚类算法已经有了初步的认识而在Python中应用该算法无需手动编写代码因为Python的第三方模块Scikit-Learn已经帮我们写好了在性能和稳定性上会好得多只需在程序中调用即可没必要自己造轮子。 关于Scikit-Learn的介绍及应用请参考文章 第2篇 机器学习基础 —3机器学习库之Scikit-Learn 3.K-means聚类优缺点
K-means是一种常用的聚类算法其优缺点如下
优点
原理简单容易实现。可解释度较强。可以通过加速算法来提高效率。具有良好的可扩展性适用于大规模数据集。聚类效果较好适用于一些简单的数据集。
缺点
K值很难确定。容易陷入局部最优解。对噪音和异常点敏感。需要样本存在均值限定数据种类。聚类效果依赖于聚类中心的初始化。对于非凸数据集或类别规模差异太大的数据效果不好。 4.聚类数据生成器
Scikit-Learn 中的make_blobs方法用于生成聚类算法的测试数据直观地说make_blobs 方法可以根据用户指定的特征数量、中心点数量、范围等来生成几类不同的数据这些数据可用于测试聚类算法的效果。
make_blobs 方法的语法如下
sklearn.datasets.make_blobs(n_samples100,n_features2,centers3,cluster_std1.0,center_box(-10.0,10.0),shuffleTrue,random_stateNone)
常用参数说明
n_samples待生成的样本的总数。
n_features每个样本的特征数。
centers类别数。
cluster_std每个类别的方差。例如生成两类数据其中一类比另一类具有更大的方差可以将cluster_std 参数设置为[1.0,3.0]。
举例
生成用于聚类的数据500 个样本每个样本中含有2 个特征程序代码如下
from sklearn.datasets import make_blobs
from matplotlib import pltx,y make_blobs(n_samples500, n_features2, centers3)
接下来通过K-Means 方法对测试数据进行聚类形成散点图程序代码如下
from sklearn.cluster import KMeansy_pred KMeans(n_clusters4, random_state9).fit_predict(x)
plt.scatter(x[:, 0], x[:, 1], cy_pred)
plt.show()
运行程序效果如下图所示 从分析结果得知相似的数据聚在一起分成了4堆也就是4类并以不同的颜色显示看上去更加清晰直观。✅