本文主要是介绍深度学习-k-mean实现聚类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对模拟函数生成的随机数据,分为三个族群。
1.生成数据
设定样本数量、特征数、族群数,以及簇内标准差之后,通过make_blobs
生成随机数据。
scikit-learn
库中的make_blobs
函数来生成模拟数据集的,用于创建多类单标签数据集,通常用于聚类算法的实验或测试。
make_blobs
函数,将返回的两个值分别赋值给变量x
和y
。x
通常是一个二维数组,其中包含了生成的样本点(每个样本点是一个特征向量),而y
是一个一维数组,包含了每个样本点所属的类别标签。
2.通过k-mean算法聚类
设置簇的数量K后,通过K和随机数种子初始化KMeans算法后进行聚类
3.获取聚类结果并绘图
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs# 生成具有三个簇的示例数据
n_samples = 300
n_features = 2
centers = 3
cluster_std = 1.0x, y = make_blobs(n_samples=n_samples, n_features=n_features, centers=centers, cluster_std=cluster_std, random_state=42)# 设置K值(簇的数量)
k = 3# 初始化KMeans算法
kmeans = KMeans(n_clusters=k, random_state=42)# 进行聚类
kmeans.fit(x)# 获取聚类结果
labels = kmeans.labels_
centroids = kmeans.cluster_centers_# 绘制聚类结果
plt.figure(figsize=(8, 6))
plt.scatter(x[:, 0], x[:, 1], c=labels, cmap='viridis', marker='o', edgecolor='k', s=50)
plt.scatter(centroids[:, 0], centroids[:, 1], c='red', marker='x', s=200, linewidths=3, zorder=10)
plt.title('K-means Clustering')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.grid(True)
plt.show()
这篇关于深度学习-k-mean实现聚类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!