挖掘建模之K-means聚类算法

K-Means算法是一种基于距离的非层次聚类方法,通过迭代寻找聚类中心,将数据分配到最近的类别中。算法涉及初始中心选择、距离计算、目标函数等步骤。距离计算包括欧几里得、曼哈顿和闵可夫斯基距离,对于文档数据则使用余弦相似度。目标函数是误差平方和SSE,用于衡量聚类质量。
摘要由CSDN通过智能技术生成

定义

K-Means算法(K-均值聚类)是典型的基于距离的非层次聚类算法,在最小化误差函数的基础上将数据划分为预定的类数K,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度越大。

算法过程

  • 从N个样本数据中随机选取K个对象作为初始的聚类中心
  • 分别计算每个样本到各聚类中心的距离,将对象分配到距离最近的聚类中
  • 所有对象分配完成之后,重新计算K个聚类的中心
  • 与前一次计算得到的K个聚类中心比较,如果聚类中发生变化,则转回过程2,否则转至过程5
  • 当质心不在发生变化时停止并输出聚类结果

在实践中,通常会选择不同的初始聚类中心,多次运行K-Means算法。目的是为了预防聚类结果依赖于初始聚类中心的随机选择而导致结果严重偏离全局最有分类。

距离公式

对于连续属性,要先对各属性值进行零-均值规范,再进行距离的计算。
样本与簇之间的距离可以用样本到簇中心的距离 d ( e i , x ) d(e_i,x) d(ei,x);簇与簇之间的距离可以用簇中心的距离 d ( e i , e j ) d(e_i,e_j) d(ei,ej)
用p个属性来表示n个样本的数据矩阵: [ x 11 ⋯ x 1 p ⋮ ⋱ ⋮ x n 1 ⋯ x n p ] \begin{bmatrix} x_{11} & \cdots & x_{1p}\\ \vdots & \ddots &\vdots \\ x_{n1} & \cdots & x_{np} \end{bmatrix} x11xn1x1pxnp

  • 欧几里得距离:
    d ( i , j ) = ( x i 1 − x j 1 ) 2 + ( x i 2 − x j 2 ) 2 + . . . + ( x i p − x j p ) 2 d\left ( i,j \right )=\sqrt{(x_{i1}-x_{j1})^2 +(x_{i2}-x_{j2})^2+...+(x_{ip}-x_{jp})^2} d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值