欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 使用scikit-learn中的K均值包进行聚类分析

使用scikit-learn中的K均值包进行聚类分析

2025/2/6 9:52:33 来源:https://blog.csdn.net/Luzem0319/article/details/145428818  浏览:    关键词:使用scikit-learn中的K均值包进行聚类分析

聚类是无监督学习中的一种重要技术,用于在没有标签信息的情况下对数据进行分析和组织。K均值算法是聚类中最常用的方法之一,其目标是将数据点划分为K个簇,使得每个簇内的数据点更加相似,而不同簇之间的数据点差异较大。

准备自定义数据集

首先,需要一个自定义数据集来进行聚类分析。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt# 创建自定义数据集
np.random.seed(42)
num_samples = 150# 生成特征数据
X = np.random.rand(num_samples, 2)# 将数据转换为DataFrame以便查看
data = pd.DataFrame(X, columns=['Feature1', 'Feature2'])# 可视化数据集
plt.scatter(data['Feature1'], data['Feature2'], c='gray', marker='o', edgecolor='black')
plt.title('Custom Dataset')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

在这个数据集中,Feature1Feature2是特征。使用K均值算法对这些数据点进行聚类。

 使用K均值算法进行聚类

接下来,将使用scikit-learn库中的K均值算法对数据集进行聚类。我们需要指定簇的数量K,假设K=3。

from sklearn.cluster import KMeans# 指定簇的数量
k = 3# 初始化K均值聚类器
kmeans = KMeans(n_clusters=k, random_state=42)# 训练模型
kmeans.fit(X)# 获取聚类结果
labels = kmeans.labels_# 获取簇中心
centroids = kmeans.cluster_centers_# 将聚类结果添加到DataFrame中
data['Cluster'] = labelsprint(data.head())

可视化聚类结果

可视化聚类结果,以便更直观地了解数据点的分组情况。

# 可视化聚类结果
plt.figure(figsize=(8, 6))
plt.scatter(data['Feature1'], data['Feature2'], c=data['Cluster'], cmap='viridis', marker='o', edgecolor='black')
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', marker='x', s=200, label='Centroids')
plt.title('K-Means Clustering Result')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend()
plt.show()
通过观察聚类结果的可视化图,我们可以看到数据点被划分为三个簇。每个簇内的数据点更加相似,而不同簇之间的数据点差异较大。K均值算法通过迭代优化簇中心的位置来实现这一目标。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com