tensorflow学习笔记(十二):K-means手写体数字(MNIST)识别

本文介绍了K-Means聚类算法,详细讲解了KMeans类的主要函数,并通过TensorFlow实现K-means对MNIST手写体数字数据集进行分类,展示了实际应用中的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



一、K-means简介

K-Means算法是经典的无监督的聚类算法,其思想是对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。

算法流程图下:
在这里插入图片描述
更多理论知识请参考:K均值(K-means)聚类算法

二、主要函数

1、KMeans()

用于创建一个Kmeans算法的对象,定义如下:

from tensorflow.contrib.factorization import KMeans

KMeans(
    inputs,
    num_clusters,
    initial_clusters=RANDOM_INIT,
    distance_metric=SQUARED_EUCLIDEAN_DISTANCE,
    use_mini_batch=False,
    mini_batch_steps_per_iteration=1,
    random_seed=0,
    kmeans_plus_plus_num_retries=2,
    kmc2_chain_length=200
)

参数

  • inputs:输入张量或输入张量列表。假设数据点先前已被随机置换。
  • num_clusters:一个整数张量,指定簇的数量。如果initial_clusters是张量或numpy数组,则忽略此参数。
  • distance_metric:用于群集的距离度量。支持的选项:“squared_euclidean”,“cosine”。
  • use_mini_batch:如果为true,请使用小批量k-means算法。
  • mini_batch_steps_per_iteration:更新的集群中心同步回主副本的步骤数。

2、kmeans.training_graph()

该函数用于构建图模型,定义如下:

(all_scores,cluster_idx,scores,cluster_centers_initialized,cluster_centers_vars,init_op,training_op)=kmeans.training_graph()
#注意这里的 all_scores cluster_idx scores
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值