机器学习----聚类之k-means

news/2024/11/24 12:22:46/

(一)、K-Means聚类算法

KMeans是聚类算法的一种,先来直观的看一下该算法是怎样聚类的。给定一组数据如下图所示,K-Means算法的聚类流程如图:



图中显示了Kmeans聚类过程,给定一组输入数据{x(1),x(2),...,x(n)}和预分类数k,算法如下:


首先随机指定k个类的中心U1~Uk,然后迭代地更新该centroid。

其中,C(i)表示第i个数据离那个类中心最近,也就是将其判定为属于那个类,然后将这k各类的中心分别更新为所有属于这个类的数据的平均值

(二)、Cluster问题的(distortion)costfunction

在supervised learning中我们曾讲过cost function,类似的,在K-means算法中同样有cost function,我们有时称其为distortion cost function.
如下图所示,J(C,U)就是我们要minimize的function.


即最小化所有数据与其聚类中心的欧氏距离和。
再看上一节中我们讲过的KMeans算法流程,第一步为固定类中心U,优化C的过程:


第二步为优化U的过程:


这样进行迭代,就可以完成cost function J的优化。
练习:



这里大家注意,回归问题中有可能因为学习率设置过大产生随着迭代次数增加,cost function反倒增大的情况。但聚类是不会产生这样的问题的,因为每一次聚类都保证了使J下降,且无学习率做参数。

(三)、如何选择初始化时的类中心

在上面的kmeans算法中,我们提到可以用randomly的方法选择类中心,然而有时效果并不是非常好,如下图所示:

图1

对于上图的这样一组数据,如果我们幸运地初始化类中心如图2,

图2

图3

但如果将数据初始化中心选择如图3中的两种情况,就悲剧了!最后的聚类结果cost function也会比较大。 针对这个问题,我们提出的solution是,进行不同initialization(50~1000次),每一种initialization的情况分别进行聚类,最后选取cost function J(C,U)最小的作为聚类结果。

(四)、聚类个数的选择

How to choose the number of clusters? 这应该是聚类问题中一个头疼的part,比如K-Means算法中K的选择。本节就来解决这个问题。

最著名的一个方法就是elbow-method,做图k-J(cost function)如下:


若做出的图如上面左图所示,那么我们就找图中的elbow位置作为k的选定值,如果像右图所示并无明显的elbow点呢,大概就是下图所示的数据分布:


这种情况下需要我们根据自己的需求来进行聚类,比如Tshirt的size,可以聚成{L,M,S}三类,也可以分为{XL,L,M,S,XS}5类。需要大家具体情况具体分析了~
练习:




http://www.ppmy.cn/news/231437.html

相关文章

韦伯分布(Weibull)参数矩估计MATLAB实现

韦伯分布(Weibull)参数矩估计MATLAB实现 二参数韦伯分布概率密度函数 f ( x ) β η ( x η ) β − 1 e − ( x η ) β , β > 0 , η > 0 , x ≥ γ ≥ 0 f(x)\frac{\beta}{\eta}\left(\frac{x}{\eta}\right)^{\beta-1} e^{-\left(\frac{x}{\eta}\right)^{\beta}}, …

Tensorflow 保存卷积神经网络模型参数

Tensorflow 保存卷积神经网络模型参数 Tensorflow 保存卷积层参数 Tensorflow 保存卷积层参数 import numpy as np import tensorflow as tf import matplotlib.pyplot as pltfrom tensorflow.examples.tutorials.mnist import input_data print ("packs loaded")pa…

hot-S22和X参数的原理(转)

什么是 X 参数 - X Parameters 概念 在微波射频电路设计中,S 参数是最被广泛使用的、描述射频与微波网络特性的参量。S 参数定义了两(多)端口网络输入和输出的关系: S 参数非常适用进行射频、微波网络级联分析;根据 S 参数的定义&#xff0c…

【MDT】iPhone XS 系列屏幕素质报告

iPhone XS 与 iPhone XS Max 均采用了 Apple 官方称之为:「超视网膜高清显示屏 」的新一代 OLED 屏幕,除了大小不同以及分别率分别为 2436 x 1125 和 2688 x 1242 之外,其他参数都没有差别,均为 458 PPI, P3 色域。 1/3 色域测试 …

Python函数参数传递,返回值

文章目录 位置实参传递,即一对一传递,传递顺序不能乱关键字实参传递,f(arg1...,arg2...,...)默认值,传递传递任意数量的实参使用任意数量的关键字实参返回值 返回字典传递列表,可以在函数中修改列表,以及如…

Mnist数据集单隐层BP神经网络参数调优

本次对mnist数据集采用单隐层的BP神经网络,在对参数初始化,激活函数,学习率,正则系数选择,隐层神经元数量选择,随机采样样本数量进行调优后,模型在测试集上的正确率可以达到98%。 1、 参数初始…

[吴恩达机器学习笔记]13聚类K-means

13.聚类 觉得有用的话,欢迎一起讨论相互学习~ 吴恩达老师课程原地址 13.1无监督学习简介 从监督学习到无监督学习 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正样本和负样本的决策边界,在监督学习中&…

【机器学习笔记】——k近邻(k-nearest neighbor,k-NN)

目 录 1 k-NN 1.1 基本思路 1.1.1 距离度量1.1.2 k值的选择1.1.3 决策1.2 基于kd树的k-NN算法 1.2.1 构造kd树1.2.2 搜索kd树(基于kd树的k-NN算法) 1.2.2.1 基于kd树的最近邻算法1.2.2.2 基于kd树的k-NN算法1.3 k-NN的优缺点 1.3.1 优点1.3.2 缺点2 算法…