Python聚类算法K-means

1.库安装:scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple

2.学习网站:2.3. 聚类 - sklearn

  1. KMeans 算法

KMeans 算法通过把样本分离成 n 个具有相同方差的类的方式来聚集数据,最小化称为 惯量(inertia) 或 簇内平方和(within-cluster sum-of-squares)的标准(criterion)。该算法需要指定簇的数量。它可以很好地扩展到大量样本(large number of samples),并已经被广泛应用于许多不同领域的应用领域。

k-means 算法将一组 样本 划分成 不相交的簇 , 每个都用该簇中的样本的均值 描述。 这个均值(means)通常被称为簇的 "质心(centroids)"; 注意,它们一般不是从 中挑选出的点,虽然它们是处在同一个空间。

K-means(K-均值)算法旨在选择一个质心, 能够最小化惯性或簇内平方和的标准:

4.算法流程

(1)选择K个点作为初始质心。

(2)将每个点指派到最近的质心,形成K个簇。

(3)对于上一步聚类的结果,进行平均计算,得出该簇的新的聚类中心。

(4)重复上述两步/直到迭代结束:质心不发生变化。

使用for循环计算聚类个数为2至9时的轮廓系数值,寻找最优聚类个数代码:

import pandas as pd

import numpy as np

from sklearn.cluster import KMeans

from sklearn.metrics import silhouette_samples

from sklearn.metrics import silhouette_score

import matplotlib.pyplot as plt

读取Excel文件

df = pd.read_excel('E:\python练习\Python_Kmeans\工作簿1.xlsx', sheet_name='Sheet1')

data1=df['Relative Humidity']

data1=np.array(data1)

data2=df['Temp']

data2=np.array(data2)

data3=df['Wind']

data3=np.array(data3)

DATA=np.vstack((data1,data2,data3)).T

K=range(2,9)

score=[]

for k in K:

kmeans=KMeans(n_clusters=k)

kmeans.fit(DATA)

score.append(silhouette_score(DATA,kmeans.labels_,metric='euclidean'))

plt.plot(K,score,'r*-')

plt.xlabel('k')

plt.ylabel(u'lkxs')

plt.title(u'K_vaule')

plt.show()

相关推荐
如何原谅奋力过但无声7 小时前
【灵神高频面试题合集06-08】反转链表、快慢指针(环形链表/重排链表)、前后指针(删除链表/链表去重)
数据结构·python·算法·leetcode·链表
平行侠7 小时前
037插入排序 - 整理扑克牌的算法
数据结构·算法
deephub7 小时前
2026 RAG 选型指南:Vector、Graph、Vectorless 该怎么挑
人工智能·python·大语言模型·rag
ECT-OS-JiuHuaShan7 小时前
彻底定理化:从量子纠缠到量子代谢
数据库·人工智能·学习·算法·生活·量子计算
爱喝雪碧的可乐7 小时前
2026 腾讯广告算法大赛优秀方案启示:行为条件化多模态自回归生成推荐摘要
算法·数据挖掘·回归·推荐系统·推荐算法
碧海银沙音频科技研究院7 小时前
音箱在加入 NN AEC(神经网络声学回声消除) 后出现反复重启问题解决
人工智能·深度学习·算法
狐狐生风9 小时前
使用 UV 创建并运行 Python 项目(完整步骤)
python·uv
叼烟扛炮9 小时前
C++ 知识点18 内部类
开发语言·c++·算法·内部类
YOGOD有神9 小时前
用AI自动从谷歌地图抓取海外客户,我跑了一次7小时的任务,结果出乎意料
算法