sklearn kmeans_使用sklearn评估器构建聚类模型

工作内容:

聚类算法是在没有给定划分类别的情况下,根据数据样本的相似度进行样本分组的一种算法。聚类算法过程是无监督的,聚类模型可以将没有类标记的数据集聚集为多个簇,归为一类。常用在市场分析人员对消费者在数据库中的具体情况分类成不同的消费群体,从而评估出不同类消费人群的一个消费模式和消费习惯。聚类算法在数据分析算法中也可以作为其预处理步骤,例如异常值识别。

工作目标:

a.使用sklearn估计器构建K-Means聚类模型

b.根据聚类模型评价指标对K-Means聚类模型进行评价

6.2.1 构建聚类模型的逻辑与说明

首先在处理数据的过程中我们先对我们的输入内容进行考虑,即聚类输入为一组未被进行标记的数据样本,聚类通过不同数据之间的距离和相似度将这些数据样本进行划分,被划分成若干组的数据根据样本内部距离最小化,外部距离最大化的原则进行划分,可理解成不同维度与同一维度下数据的距离。

常用的聚类算法如下:

v2-dcf15bc515edcd539d54926c7818bfc7_b.jpg

sklearn常用的聚类算法模块cluster提供的聚类算法及其适用范围如下:

v2-4d6c4ae4ce8d4660567755c7337b2b94_b.jpg

聚类算法实现实现需要Estimator,其具备fit和predict两种方法,方法说明如下:

v2-77178308f9dcf7498837a45e240c190e_b.jpg

两个方法的步骤与Transformer数据预处理的过程相似,下面使用鸢尾花数据,通过sklearn估计器对其构建K-Means聚类模型,步骤如下:

首先读入数据:

iris

得到数据样本后生成规则:

Scaler=MinMaxScaler().fit(irisData)

应用Scaler:

irisDataScaler=Scaler.transform(irisData)

构建模型后训练模型:即先构建KMeans模型后,利用fit方法将生成的数据规则样本传入训练模型,输出模型进行查看检验

kmeans=KMeans(n_clusters=3,random_state=23).fit(irisDataScaler)
print("the model:n",kmeans)

输出结果如下:

v2-036bf565bf9c09a85a3d1fff82724198_b.png

接下来进行对测试集标签的预测:

rs=kmeans.predict([[2,2,2,2]])

print(rs[0])

输出结果为:2

代码如下:

v2-379cdad0ff3b06bd835921f5419aff95_b.jpg

聚类完成后为直观的看出我们聚类后的效果,可以通过sklearn的manifold模块中TSNE函数实现多维数据的可视化展现。

代码如下:

v2-00fba07ebfd5874ada7d8f39356f7d13_b.jpg

可视化图片如下:

v2-5c164dc1a65a903e314c7854ccb981ea_b.jpg

我们可以发现本次聚类三类类别分布较为均匀,类与类之间界限明显,聚类效果好

欢迎大家加入人工智能圈参与交流

人工智能学习圈 - 知乎​www.zhihu.com
v2-e9d99ccf682206d20f735da3968233c7_ipico.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值