深度学习-k-mean实现聚类

对模拟函数生成的随机数据,分为三个族群。

1.生成数据

设定样本数量、特征数、族群数,以及簇内标准差之后,通过make_blobs生成随机数据。

scikit-learn库中的make_blobs函数来生成模拟数据集的,用于创建多类单标签数据集,通常用于聚类算法的实验或测试。

make_blobs函数,将返回的两个值分别赋值给变量xyx通常是一个二维数组,其中包含了生成的样本点(每个样本点是一个特征向量),而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.0

x, 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()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于K-means的深度聚类是一种将K-means算法与深度学习相结合的方法,用于在高维数据中进行聚类分析。K-means算法是一种传统的聚类算法,它通过迭代计算数据点与簇中心之间的距离,将数据点分配到最近的簇中心,并更新簇中心的位置,直到达到收敛条件。而深度学习是一种机器学习方法,通过多层神经网络模型来学习数据的表示和特征提取。 在基于K-means的深度聚类中,首先使用深度学习模型对数据进行特征提取,将原始数据映射到低维空间中。然后,使用K-means算法对映射后的数据进行聚类分析,将数据点分配到不同的簇中。这种方法可以充分利用深度学习模型学习到的高级特征,提高聚类的准确性和效果。 需要注意的是,基于K-means的深度聚类需要进行适当的参数选择和模型训练,以确保得到合理的聚类结果。同时,由于K-means算法对初始簇中心的选择敏感,可能会收敛到局部最小值点,因此可以多次运行K-means算法,每次使用不同的初始簇中心,以增加算法的稳定性和准确性。 总之,基于K-means的深度聚类是一种结合了K-means算法和深度学习的方法,可以在高维数据中进行聚类分析,并提高聚类的准确性和效果。 #### 引用[.reference_title] - *1* *2* *3* [机器学习算法精讲20篇(一)-k-means聚类算法应用案例(附示例代码)](https://blog.csdn.net/wenyusuran/article/details/119827242)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值