聚类分析python代码_k-means聚类分析 python 代码实现(不使用现成聚类库)

本文详细介绍了如何不使用现成聚类库,用Python实现K-means聚类分析。通过设置不同K值,对数据进行聚类并计算SSE(误差平方和),分析训练集和测试集的损失,探讨最佳K值的选择。最终,通过画图展示不同K值下SSE的变化,确定K=4时得到最优的聚类效果。
摘要由CSDN通过智能技术生成

一、实验目标

1、使用 K-means 模型进行聚类,尝试使用不同的类别个数 K,并分析聚类结果。

​    2、按照 8:2 的比例随机将数据划分为训练集和测试集,至少尝试 3 个不同的 K 值,并画出不同 K 下 的聚类结果,及不同模型在训练集和测试集上的损失。对结果进行讨论,发现能解释数据的最好的 K 值。

二、算法原理

首先确定k,随机选择k个初始点之后所有点根据距离质点的距离进行聚类分析,离某一个质点a相较于其他质点最近的点分配到a的类中,根据每一类mean值更新迭代聚类中心,在迭代完成后分别计算训 练集和测试集的损失函数SSE_train、SSE_test,画图进行分析。

伪代码如下:

num=10 #k的种类

for k in range(1,num):

随机选择k个质点for i in range(n): #迭代n次

根据点与质点间的距离对于X_train进行聚类

根据mean值迭代更新质点

计算SSE_train

计算SSE_test

画图

算法流程图:

三、代码实现

1、导入库

importpandas as pdimportmatplotlib.pyplot as pltimportnumpy as npfrom sklearn.model_selection import train_test_split

2、计算距离

defdistance(p1,p2):return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值