📜  Python 中的 K-Means 聚类 - 3 个聚类 - Python (1)

📅  最后修改于: 2023-12-03 14:46:11.827000             🧑  作者: Mango

Python 中的 K-Means 聚类 - 3 个聚类

简介

在机器学习中,聚类是一种无监督的学习方法,其目的是将数据集中的对象分成若干个类别,使得同一类别中的对象相似,不同类别中的对象差异较大。

K-Means 聚类就是其中的一种方法,其原理是将数据集中的对象分成 k 类,并使每个对象到所属类别中心点的距离最小化。可以用于数据挖掘、图像分割等领域。

下面我们将介绍如何在 Python 中使用 K-Means 聚类算法。

代码实现
安装所需的依赖

在运行代码之前,我们需要安装所需的依赖。

!pip install numpy
!pip install matplotlib
!pip install scikit-learn
导入需要用到的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
生成数据集

我们先生成一些随机的二维数据集,用于演示 K-Means 聚类。

np.random.seed(0)
n_samples = 1500
X = np.random.randn(n_samples, 2) * 0.4
X[:500, :] += 3
X[500:1000, :] -= 3
X[1000:, :] += 0
对数据集进行聚类

我们使用 K-Means 对数据集进行聚类,并将聚类结果可视化。

kmeans = KMeans(n_clusters=3, random_state=0).fit(X)
y_pred = kmeans.predict(X)

plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s=200, marker='*', c='red')
plt.title('K-Means Clustering with 3 clusters')
plt.show()

K-Means Clustering with 3 clusters

上图展示了对数据集进行 3 个聚类的结果,其中红色的星号表示每个聚类的中心点。

聚类结果分析

我们可以通过以下代码输出每个聚类中心点的坐标。

print(kmeans.cluster_centers_)

输出如下:

[[ 2.95646013  2.92629466]
 [-2.97130139 -2.99957387]
 [ 0.00604329 -0.03628771]]

我们还可以输出每个样本所属的聚类。

print(kmeans.labels_)

输出如下:

[1 1 1 ... 2 2 2]
总结

本文介绍了在 Python 中使用 K-Means 聚类算法的方法,并展示了对数据集进行 3 个聚类的结果。K-Means 是一种高效的聚类算法,可以应用于多种领域。