概述:

KMEANS算法又被成为K均值算法,是一种常用的聚类算法,由于不需要根据给定的训练集训练模型因此是一种无监督学习算法。其本质是根据选定的参数K将数据分类成K类,在聚类过程中从单一样本开始通过不断计算聚类数据的均值来作为整个类的中心进而再将距离此类别中心最近的数据纳入同一类。

算法原理:

1、以下图样本散点图展示数据集的整体分布情况

2、K值是KMEANS最重要的选择参数,直接决定着数据聚类的类别数量,在选择K值后,会在数据中随机选择K个数据样本最为初始中心点,如K=3,则结果如下图所示

3、计算和中心点距离最近的点,将其归入同类

4、每个类别当有了两个以上的数据时,类的中心就会发生变化,因此类中一旦有新的数据被划入时就需要重新计算整个类的中心点,这一步的计算也是整个算法的核心,所以称为K均值算法

5、通过几步计算之后的结果,能够更直观的展示出类的聚合情况和中心点的位置情况

6、判断聚类过程结束的标准有两个,一是中心点的位置不再发生变化,即结果收敛;二是执行了最够多次的迭代次数(通俗可以理解为计算了几次中心点位置)

注意事项:

1、K值是整个算法中最重要的参数,但是也是最不好确定的参数,如果需要比较好的确定K值,需要采用其他验证算法,如计算样本离最近聚类中心的总和,总和越小,则聚类的效果越好;轮廓系数,轮廓系数的范围为-1至1之间,数字越大则聚类效果越好;兰德指数,范围为-1至1之间,数字越大则聚类效果越好;同质化得分,如果所有的聚类都只包含属于单个类的成员的数据点则聚类结果将满足同质性,其取值范围为0至1之间,值越大意味着聚类结果与真实情况越吻合。

2、以上验证方法虽然对于确定K值有效,但是验证过程需要额外的计算力资源,并且占用的计算力接近于聚类过程所需要的计算力资源,数据集如果较大,则计算力的消耗会产生叠加效应。

3、较为简易的方法为,从数据集中随机抽取部分小规模数据,以散点图等可视化手段来观察数据的可能聚类数量,以此来判断K的取值。这种方法可以认为是经验法的一种表现形式,相比经验法的完全定性分析,随机抽取数据观察能够在经验的基础上增加定量的分析部分,虽然随机抽取的数据也可能有误差,但是抽取的数据量越多,则准确度越高。

4、因为初始的中心点选择是根据K的值随机选择K个点,所以选择的随机性加上迭代过程造成算法的结果只是局部最优解,毕竟反复的计算最短距离的点和类的中心都是在局部已经聚合的类的基础上进行的,而不是从全局的范围进行。

算法使用场景:

1、隐含类别的数据较为平衡的情况,如隐含类别的数据量差别较大,则聚类的效果就较差。

2、数据最好是凸数据,即隐含类别间的差异越大,则聚类效果越好,因为中心点不再变化所需要的迭代次数较少,比较容易收敛。

3、一般作为数据预处理,或者用于辅助分类贴标签使用,因为在已经经过分类的数据上再进行聚类,准确度会非常高。

阿里云PAI平台算法模块及参数设置说明:

inputTableName :输入表表名

selectedColNames:输入表中用于训练的列名,默认选择所有列

inputTablePartitions:输入表中指定哪些分区参与训练,默认选择所有分区

centerCount:聚类数K,是算法中最重要的参数,决定数据的聚类数量

loop:最大迭代次数,算法中非常重要的参数,当最大迭代次数到达但是仍然无法收敛时,则停止计算

accuracy:中心点计算终止条件,如果两次迭代之间变化低于该值,算法终止,默认值0.0,值过大则会出现欠拟合情况,值较小则中心点容易在小范围间变化造成计算结果无法收敛

distanceType:距离度量方式,euclidean(欧式距离),cosine(夹角余弦),cityblock(曼哈顿距离),默认为欧式距离

initCenterMethod:质心初始化方法,random(随机采样),topk(输入表前k行),uniform(均匀分布),external(指定初始质心表),默认值为随机采样

initCenterTableName:初始质心表名,当质心初始化方法采用指定初始质心表方式时采用

seed:初始随机种子数,正整数,默认值为当前时间,seed设置为固定值则每次聚类结果是稳定的

enableSparse:输入表数据是否为稀疏格式, 默认值为非稀疏格式

itemDelimiter:当输入表数据为稀疏格式时,kv间的分割符,默认值为空格

kvDelimiter:当输入表数据为稀疏格式时,key和value的分割符,默认值冒号

modelName:输出模型的模型名

idxTableName:输出聚类结果表,和输入表对应,并指明聚类后每条记录所属的类号

idxTablePartition:输出聚类结果表的分区表名

clusterCountTableName :输出聚类统计表,统计各个聚类包含的点的数目

centerTableName:输出聚类中心表

coreNum:节点个数,与参数memSizePerCore配对使用,正整数,默认自动计算

memSizePerCore :单个节点内存大小,单位M,正整数,默认自动计算

lifecycle:指定输出表的生命周期,默认没有生命周期

阿里云双11亿元补贴提前领,进入抽取iPhone 11 Pro:https://www.aliyun.com/1111/2019/home?utm_content=g_1000083110

作者:朱祺

本文为云栖社区内容,未经允许不得转载。

输入参数的数目不足_机器学习算法—KMEANS算法原理及阿里云PAI平台算法模块参数说明...相关推荐

  1. java实现mqtt服务端_基于Swoole使用MQTT协议连接阿里云物联网平台设备实现消息订阅

    阿里云物联网平台为设备提供安全可靠的连接通信能力,支撑设备数据采集上云,我们这里认为阿里云物联网平台是 MQTT 服务端,那么我们自己的设备作为客户端,应该如何实现消息订阅? 阿里云没有提供 PHP ...

  2. 输入参数的数目不足_数控加工中心参数的恢复方法

    机加工网 订单 | 技术 | 干货 | 社群 关注可加入机械行业群! 关注 由于数控加工中心所配的数控系统种类繁多,参数恢复的方法也因系统而异,即使是对同一厂家的产品,也因系列不同而有所差别.我们这里 ...

  3. matlab 错误使用 connector.internal.autostart.run输入参数的数目不足。

    matlab打开后提示: 错误使用 connector.internal.autostart.run输入参数的数目不足 原因:自己写的一个函数和matlab自带的函数重名了 参考:警告: 在 matl ...

  4. 第三届阿里云智维算法大赛总结

    第三届阿里云智维算法大赛总结 问题描述 数据简述 思路一 模板匹配 训练数据生成 输入模型 GridSearchCV调参 思路二 biL-lstm+attention 其他 neptune.ai可视化 ...

  5. 利用rfcomm实现树莓派与手机通信_工业物联网 | 怎么用NodeRed实现树莓派与阿里云物联网平台通信?虹科告诉你!...

    想获取更多IIOT干货 请点击蓝字,关注我们 虹科工业树莓派 高性能 多接口 宽温--适应恶劣环境 ★★★★★ Node-RED是构建物联网(IoT)应用程序的强大工具,它使用可视化的编程方法,允许开 ...

  6. K-means 方法实现3D点云的聚类算法

    K-means 方法实现3D点云的聚类算法 import numpy as np import open3d as o3d import copy import random from matplot ...

  7. 北京内推 | 阿里云视频处理算法团队招聘视频处理算法实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 阿里云 阿里云-视频云团队是一个年业务增长速度超过 300% 的团队,拥有 ...

  8. 500位全球算法开发者零奖金参加阿里云天池大赛 AI预测台风助力防灾减灾

    9月26日,在杭州云栖大会 GEEKLAND 现场,由阿里云天池大赛主办的追风少年-台风图像时间序列预测 Hackathon 正式举行. 大赛旨在召集全球算法开发者,聚焦人工智能与气象的深度结合,探寻 ...

  9. 一看“左程云:200道算法与数据结构”,二刷“阿里云:70+算法题、30种大厂笔试高频知识点”,3月过去终于挺进我梦中的字节!

    不管是学生还是已经工作的人,我想彼此都有一个相同的梦想:进大厂! 眼看着2020年还有个三十来天就要完美收尾了,那么如何才能在未来三个月弯道超车赶上"金三银四的春招",进入梦寐以求 ...

最新文章

  1. 第12天,HTML基础
  2. C++:友元(非成员友元函数、成员友元函数、友元类)
  3. 视频监控中的光端机是干什么用的?
  4. 带参方法的使用 0908
  5. 一篇了解什么是Spring AOP
  6. 线程安全list_多线程开发之如何创建一个线程安全的类
  7. (C/C++学习笔记)附页: C/C++变量的存储类型
  8. 用 JAVA 编写一个 M3U8 视频下载器
  9. 排错解决:etcd节点掉线后(code=exited, status=1/FAILURE),如何加入
  10. 微信DAT文件转JPG图片(图片恢复)
  11. nodejs实现定时任务
  12. Leetcode #1 Two Sum
  13. 【STM32H7】第2章 ThreadX FileX文件系统介绍
  14. Java注解方法实现BigDecimal保留两位小数(案例详解)
  15. 计算机模拟飞行,模拟飞行 DCS F-14B Tomcat雄猫 中文指南 3.22计算机地址面板
  16. 2022-2028年中国房地产中介服务行业市场深度分析及投资前景分析报告
  17. 堵俊平:开放治理是开源社区的终极之路 | DEV. Together 2021 中国开发者生态峰会...
  18. Themida WinLicense免费下载脱壳使用教程功能介绍大全
  19. 世界上最大直升机排名
  20. C语言连续定义多个指针变量

热门文章

  1. 请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include
  2. Hadoop的mapper输出中key和value之间的分隔符
  3. ARCGIS导入XY坐标的EXCEL文档,出现无法选择X和Y字段的问题
  4. 【分布式计算】MapReduce的替代者-Parameter Server
  5. eclipse插件的发布
  6. 4.4 开发模式下的测试:简化我们对链码的测试过程
  7. 智能合约开发环境搭建及 Hello World 合约
  8. docker部署nginx并且挂载文件夹和文件
  9. AK-47 制造商 Kalashnikov 已成功研发 AI 武器 以 AK-47 闻名世界的俄罗斯军火商 Kalashnikov 近日宣布,其已成功研发全自动武器模块,能够利用人工智能技术识别目
  10. 任正非:进军高端市场的同时,华为要防范未来竞争者从低端崛起