zoukankan      html  css  js  c++  java
  • 机器学习(一) K-means聚类

    聚类算法K-means是硬聚类算法,是目标函数聚类算法的代表。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。其核心思想是:随机选定K(聚类数)个初始中心,然后根据这K个初始中心,将N个数据点根据欧氏距离进行聚类,每个数据点离哪个初始中心更近就归于此初始中心一类,直至聚类完成,再计算每个聚类的均值作为新的中心,然后再根据欧氏距离进行聚类,如此迭代下去,直至收敛(即重新计算的中心与前一次计算的中心位置一致)。

    其算法过程如下:

    1. 从数据集N个数据中选择K个初始聚类中心;
    2. 对剩余的(N-K)个数据计算到K个初始聚类中心的欧氏距离,并将其归类于最小距离的中心的类;
    3. 对K个类重新进行计算,得到迭代后的聚类中心;
    4. 迭代步骤2~3直到聚类中心不再变化或者变化小于设置的阈值为止。

    算法优缺点:

    优点:

    1. 算法快速、简单;
    2. 对大数据集有较高的效率并且是可伸缩性的;
    3. 时间复杂度近于线性,而且适合挖掘大规模数据集。K-Means聚类算法的时间复杂度是O(nkt) ,其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目。

    缺点:

    1. 聚类数K是事先给定的,然而有时候我们并不知道k,只能凭经验给出。
    2. k-means需要初始聚类中心,然而传统k-means的初始中心是随机指定的。随机指定初始中心会导致聚类的迭代次数增加,聚类错误(局部最优而非全局最优)等等后果。
    3. 易受异常点干扰,也会导致迭代次数增加。

  • 相关阅读:
    餐饮点菜控件
    数据模块池
    关于sqlite数据库
    PHP使用DateTime类做时间日期到字符串转换
    php字符串比较函数
    Xdebug开源PHP程序调试器
    ubuntu chmod 无法更改 文件夹权限 系统提示“不允许的操作 2、linux 如何修改只读文件 3、ubuntu安装
    ubuntu的命令day1
    linux用终端上传文件和文件家到远程的服务器
    Symfony学习--原创。。。。
  • 原文地址:https://www.cnblogs.com/LaplaceAkuir/p/6391745.html
Copyright © 2011-2022 走看看