Python DBSCAN 聚类算法示例:基于密度聚类的数据可视化

本示例展示如何使用 Python 的 DBSCAN 聚类算法对随机数据进行聚类,并利用 matplotlib 库可视化聚类结果。

代码:

import numpy as np
from sklearn.cluster import DBSCAN
import matplotlib.pyplot as plt

# 生成数据
X = np.random.randn(100, 2)

# 使用密度聚类算法进行聚类
db = DBSCAN(eps=0.3, min_samples=5).fit(X)
labels = db.labels_

# 绘制聚类结果图
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.title('Density-Based Clustering')
plt.show()

程序设计思路:

  1. 导入需要的库: 包括 numpy 用于数据操作,sklearn.cluster 用于调用 DBSCAN 算法,matplotlib.pyplot 用于绘制图像。
  2. 生成数据: 使用 numpy.random.randn 函数生成 100 个二维数据点。
  3. 使用 DBSCAN 算法进行聚类: 设置 epsmin_samples 参数,分别代表邻域半径和每个核心点所需的最小样本数,得到每个数据点的聚类标签。
  4. 绘制聚类结果图: 使用 matplotlib.pyplot.scatter 函数,传入数据点的 x 和 y 坐标以及聚类标签作为颜色参数,设置标题并显示图像。

代码解释:

  • X = np.random.randn(100, 2):生成 100 个二维随机数据点,每个数据点包含两个随机数。
  • db = DBSCAN(eps=0.3, min_samples=5).fit(X):创建 DBSCAN 对象,设置参数 eps 为 0.3,min_samples 为 5,并拟合数据。
  • labels = db.labels_:获取每个数据点的聚类标签。
  • plt.scatter(X[:, 0], X[:, 1], c=labels):绘制散点图,将数据点的 x 和 y 坐标作为横纵坐标,并根据聚类标签 labels 设置点的颜色。
  • plt.title('Density-Based Clustering'):设置图像标题。
  • plt.show():显示图像。

总结:

本示例演示了如何使用 Python 的 DBSCAN 聚类算法对随机数据进行聚类,并利用 matplotlib 库可视化聚类结果。该算法可以有效地将具有较高密度的点聚集成簇,而将稀疏的点标记为噪声。

Python DBSCAN 聚类算法示例:基于密度聚类的数据可视化

原文地址: https://www.cveoy.top/t/topic/jFTb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录