分类是根据样本某些属性或某类特征(可以融合多类特征),把样本类型归为已确定的某一类别中。机器学习中常见的分类算法有:SVM(支持向量机)、KNN(最邻近法)、Decision Tree(决策树分类法)、Naive Bayes(朴素贝叶斯分类)、Neural Networks(神经网络法)等。

而分类作为一种监督学习方法,需要事先知道样本的各种类别信息。因此当对海量数据进行分类时,为了降低数据满足分类算法要求所需要的预处理代价,往往需要选择非监督学习的聚类算法。

K-Means Clustering(K均值聚类),就是最典型的聚类算法之一,接下来一起进行该算法的学习。

1、K-Means算法原理

K-Means算法思想:对给定的样本集,事先确定聚类簇数K,让簇内的样本尽可能紧密分布在一起,使簇间的距离尽可能大。该算法试图使集群数据分为n组独立数据样本,使n组集群间的方差相等,数学描述为最小化惯性或集群内的平方和。K-Means作为无监督的聚类算法,实现较简单,聚类效果好,因此被广泛使用。

2、K-Means步骤及流程

2.1、算法步骤

输入:样本集D,簇的数目k,最大迭代次数N;

输出:簇划分(k个簇,使平方误差最小);

算法步骤:

(1)为每个聚类选择一个初始聚类中心;

(2)将样本集按照最小距离原则分配到最邻近聚类;

(3)使用每个聚类的样本均值更新聚类中心;

(4)重复步骤(2)、(3),直到聚类中心不再发生变化;

(5)输出最终的聚类中心和k个簇划分;

2.2、流程框图:

3、K-Means代码实现

Python代码实现请参考:python 实现周志华 机器学习书中 k-means 算法;

Matlab代码实现请参考:https://blog.csdn.net/u010248552/article/details/78476934?locationNum=8&fps=1;

C#代码实现请参考:https://www.cnblogs.com/gaochundong/p/kmeans_clustering.html;

4、K-Means算法优缺点

4.1、优点

(1)原理易懂、易于实现;

(2)当簇间的区别较明显时,聚类效果较好;

4.2、缺点

(1)当样本集规模大时,收敛速度会变慢;

(2)对孤立点数据敏感,少量噪声就会对平均值造成较大影响;

(3)k的取值十分关键,对不同数据集,k选择没有参考性,需要大量实验;

5、参考资料

1、简单易学的机器学习算法——K-Means算法;

2、k-means 的原理,优缺点以及改进;

【机器学习】K-Means算法的原理流程、代码实现及优缺点相关推荐

  1. 【机器学习入门】(1) K近邻算法:原理、实例应用(红酒分类预测)附python完整代码及数据集

    各位同学好,今天我向大家介绍一下python机器学习中的K近邻算法.内容有:K近邻算法的原理解析:实战案例--红酒分类预测.红酒数据集.完整代码在文章最下面. 案例简介:有178个红酒样本,每一款红酒 ...

  2. 视觉SLAM开源算法ORB-SLAM3 原理与代码解析

    来源:深蓝学院,文稿整理者:何常鑫,审核&修改:刘国庆 本文总结于上交感知与导航研究所科研助理--刘国庆关于[视觉SLAM开源算法ORB-SLAM3 原理与代码解析]的公开课. ORB-SLA ...

  3. 图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)

    图机器学习(GML)&图神经网络(GNN)原理和代码实现(PGL)[前置学习系列二] 上一个项目对图相关基础知识进行了详细讲述,下面进图GML networkx :NetworkX 是一个 P ...

  4. 机器学习——K近邻算法(KNN)(K Nearest Neighbor)

    参考视频与文献: python与人工智能-KNN算法实现_哔哩哔哩_bilibili 机器学习--K近邻算法(KNN)及其python实现_清泉_流响的博客-CSDN博客_python实现knn 机器 ...

  5. A.图机器学习(GML)图神经网络(GNN)原理和代码实现(前置学习系列二)

    图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...

  6. ICCV2017跟踪算法BACF原理及代码解析

    文章和代码下载地址: Galoogahi H K, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual ...

  7. python重点知识归纳_一文了解机器学习知识点及其算法(附python代码)

    一文了解机器学习知识点及其算法(附python代码) 来源:数据城堡 时间:2016-09-09 14:05:50 作者: 机器学习发展到现在,已经形成较为完善的知识体系,同时大量的数据科学家的研究成 ...

  8. 岭回归算法的原理和代码实战

    岭回归算法的原理和代码实战 前言 学过吴恩达老师的机器学习入门课程都应该知道,在逻辑回归那一讲,吴老师提到了使用正则化来防止逻辑回归模型过拟合.而岭回归在这里的作用是一样的,同样也是防止模型过拟合.这 ...

  9. kmeans改进 matlab,基于距离函数的改进k―means 算法

    摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...

最新文章

  1. 聚类分析:创建,可视化以及可解释性
  2. 量子计算技术发展迅猛,商业潜力初现!如何把握量子计算时代的新机遇?
  3. N35-第九周作业-张同学
  4. 重启oracle后报01034,ORACLE: ORA-01034, ORA-27123问题处理的分析
  5. 深入理解js系列一作用域是什么
  6. 现在java就业前景怎么样?现在入行晚了吗
  7. where is Angular parts filled
  8. 清华开学,713分寒门学霸揭露一个真相:别抱怨读书苦,那是你看世界的路
  9. Codeforces Round #228 (Div. 2)
  10. 725 - Division
  11. 华为5g鸿蒙麒麟,华为5G亮王牌:鸿蒙系统+7800W+麒麟990+防水,钱包按耐不住!
  12. python 调用bat失败_死机、卡顿、蓝屏,Python部门的老江湖告诉我的一些超级变态代码...
  13. 数据结构--最小生成树详解
  14. matlab 加权回归估计_Matlab:地理加权回归基本操作
  15. 【机器学习与数据挖掘】浅谈指标SSE,MSE,RMSE,R-square
  16. QTcpServer. QTcpSocket. QUdpSocket之间的区别
  17. pyscripter支持python什么版本_pyscripter 64位下载-pyscripter x64下载2.5.3 官方最新版-Python集成开发环境IDE西西软件下载...
  18. 获取SSL证书private key私钥文件的步骤
  19. 大唐杯比赛辅导,国一选手
  20. 检测特殊字符的正则表达式

热门文章

  1. 校园计算机故障解决方论文法,计算机故障与处理-计算机专业毕业论文.pdf
  2. mysql blob图片_使用mysql的Blob字段存取图片
  3. 8145v5 参数_如何估计模型中的参数
  4. 实验七多线程编程_JAVA
  5. 【自动驾驶】13. Apollo交通信号灯感知
  6. opencv基础小程序大集合
  7. java实现条件编译
  8. Java HashMap 核心源码解读
  9. C++11中值得关注的几大变化
  10. 自己动手实现山东大学QLSC_STU无线网络掉线后自动重连