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()

相关推荐
勇往直前plus30 分钟前
从文件到屏幕:Python/java 字符编码、解码、文本处理的底层逻辑解析
java·开发语言·python
~央千澈~36 分钟前
优雅草科技2026年2月重磅产品·优雅草·写作中枢 — 产品介绍与发布说明
python
Mr YiRan5 小时前
C++面向对象继承与操作符重载
开发语言·c++·算法
Emotional。5 小时前
2025 年度技术总结与规划:AI 时代的开发者成长之路
人工智能·python·ai·langchain
witAI8 小时前
**AI仿真人剧制作软件2025推荐,解锁沉浸式数字内容创作
人工智能·python
蚊子码农9 小时前
算法题解记录--239滑动窗口最大值
数据结构·算法
liliangcsdn9 小时前
A3C算法从目标函数到梯度策略的探索
算法
Codefengfeng9 小时前
Python Base环境中加包的方法
开发语言·python
清水白石0089 小时前
《Python 编程全景解析:从核心精要到测试替身(Test Doubles)五大武器的实战淬炼》
开发语言·python
陈天伟教授9 小时前
人工智能应用- 材料微观:06.GAN 三维重构
人工智能·神经网络·算法·机器学习·重构·推荐算法