总结
豆包 AI 助手文章总结

Python中的聚类分析实例

王林
发布: 2023-06-10 12:30:07
原创
3813人浏览过

聚类分析是一种常用的数据分析方法,可以将数据集划分为不同的组或类别。python 提供了多种聚类算法,我们可以根据不同的需求选择不同的算法进行分析。本文将介绍一些 python 中常用的聚类算法,并给出实例应用。

一、K-Means 算法

K-Means 算法是一个常用的聚类算法,根据欧几里得距离对数据进行分组。该算法将数据集分为 k 个簇,其中每个簇的中心点是簇中所有成员的均值。算法的具体步骤如下:

  1. 随机选择 k 个点作为初始的簇中心。
  2. 计算所有数据点与簇中心的距离,并将每个数据点归为距离最近的簇。
  3. 根据新的归类结果,重新计算每个簇的中心点。
  4. 重复第 2 步和第 3 步,直到簇不再发生变化或者达到指定的迭代次数。

下面是一个使用 K-Means 算法进行聚类分析的 Python 实例:

import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_blobs(n_samples=300, centers=4, random_state=42)

# 运行 K-Means 算法
kmeans = KMeans(n_clusters=4, random_state=42)
y_pred = kmeans.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("K-Means Clustering")
plt.show()
登录后复制

上述代码中,使用 make_blobs 函数生成了一个包含 300 个样本点的数据集,共包含 4 个簇。然后使用 KMeans 函数进行聚类,指定簇的数量为 4,并通过 fit_predict 方法得到每个数据点的分类结果。最后使用 Matplotlib 绘制聚类结果。

立即学习Python免费学习笔记(深入)”;

二、层次聚类算法

层次聚类算法是一种自底向上的聚类算法,根据数据的相似度,将数据逐步合并为更大的簇。该算法的具体步骤如下:

  1. 将每个数据点看作一个单独的簇。
  2. 计算两个距离最近的簇之间的距离。
  3. 将距离最近的两个簇合并为一个新簇。
  4. 重复第 2 步和第 3 步,直到将所有簇合并为一个簇或者达到指定的聚类数量。

下面是一个使用层次聚类算法进行聚类分析的 Python 实例:

from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行层次聚类算法
agglomerative = AgglomerativeClustering(n_clusters=2)
y_pred = agglomerative.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("Agglomerative Clustering")
plt.show()
登录后复制

上述代码中,使用 make_moons 函数生成了一个包含 200 个样本点的数据集,并使用 AgglomerativeClustering 函数进行聚类,指定簇的数量为 2。最后使用 Matplotlib 绘制聚类结果。

三、DBSCAN 算法

DBSCAN 算法是一种基于密度的聚类算法,可以根据数据集的密度将数据点分为不同的簇。算法的具体步骤如下:

  1. 随机选择一个未访问的数据点作为核心点。
  2. 找出与核心点距离不超过给定半径的所有点,作为一个以该核心点为中心的密度可达区域。
  3. 如果一个点在另一个核心点的密度可达区域内,则将其和该核心点合并为一个簇。
  4. 重复第 1 步到第 3 步,直到没有新的核心点被访问。

下面是一个使用 DBSCAN 算法进行聚类分析的 Python 实例:

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行 DBSCAN 算法
dbscan = DBSCAN(eps=0.2, min_samples=5)
y_pred = dbscan.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("DBSCAN Clustering")
plt.show()
登录后复制

上述代码中,使用 make_moons 函数生成了一个包含 200 个样本点的数据集,并使用 DBSCAN 函数进行聚类,指定了半径和最小样本数的阈值。最后使用 Matplotlib 绘制聚类结果。

总结

本文介绍了 Python 中的三种常用聚类算法,并给出了相应的实例应用。聚类算法是一种十分有用的数据分析方法,可以帮助我们发现数据中的隐藏模式和关系。在实际应用中,我们可以根据数据的特点和需求选择不同的算法进行分析。

以上就是Python中的聚类分析实例的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号