Python k-means算法

作者:编程家 分类: python 时间:2025-11-10

Python k-means算法

K-means算法是一种常用的聚类分析算法,它能够将数据集划分为K个不同的簇。这个算法的核心思想是通过计算数据点之间的距离来确定它们的归属簇。Python提供了许多强大的工具和库,可以方便地实现K-means算法。

案例代码

下面是一个简单的使用Python实现K-means算法的例子。假设我们有一组包含两个特征的数据集,想要将其划分为三个簇。

python

import numpy as np

from sklearn.cluster import KMeans

# 创建一个包含两个特征的数据集

X = np.array([[1, 2],

[1, 4],

[1, 0],

[4, 2],

[4, 4],

[4, 0]])

# 使用K-means算法进行聚类分析

kmeans = KMeans(n_clusters=3)

kmeans.fit(X)

# 获取每个数据点所属的簇

labels = kmeans.labels_

# 获取簇的中心点

centers = kmeans.cluster_centers_

# 输出结果

print("每个数据点所属的簇:", labels)

print("簇的中心点:", centers)

上述代码首先导入了必要的库,然后创建了一个包含两个特征的数据集X。接下来,使用K-means算法对数据集进行聚类分析,并设定簇的数量为3。通过调用fit()函数,算法会自动将数据集划分为3个簇,并计算每个数据点所属的簇和簇的中心点。

最后,我们输出了每个数据点所属的簇和簇的中心点。

应用实例

K-means算法在实际应用中有着广泛的应用。下面以一个简单的实例来说明K-means算法的应用。

假设我们有一批顾客的数据,包括他们的年龄和消费金额。我们希望根据这些数据将顾客划分为不同的群体,以便更好地了解不同群体的消费行为。

首先,我们导入数据集,并使用K-means算法对数据进行聚类分析。

python

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.cluster import KMeans

# 读取数据集

data = pd.read_csv('customers.csv')

# 提取特征

X = data[['Age', 'Spending Score (1-100)']]

# 使用K-means算法进行聚类分析

kmeans = KMeans(n_clusters=3)

kmeans.fit(X)

# 获取每个顾客所属的簇

labels = kmeans.labels_

# 可视化结果

plt.scatter(X['Age'], X['Spending Score (1-100)'], c=labels)

plt.xlabel('Age')

plt.ylabel('Spending Score (1-100)')

plt.show()

上述代码首先导入了必要的库,并读取了包含顾客数据的CSV文件。然后,我们提取了年龄和消费金额作为特征,并使用K-means算法对数据进行聚类分析。

最后,我们将聚类结果可视化,将顾客分布在散点图上。不同颜色的点表示不同的簇,可以直观地看出不同群体的消费行为特点。

Python的K-means算法是一种强大的聚类分析工具,能够帮助我们对数据集进行有效的划分。无论是简单的例子还是实际的应用,K-means算法都能够帮助我们更好地理解数据集的特点和规律。通过学习和使用K-means算法,我们可以更好地进行数据分析和决策。