算法
有四个牧师去郊区布道,一开始牧师们随意选了几个布道点,并且把这几个布道点的情况公告给了郊区所有的村民,于是每个村民到离自己家最近的布道点去听课。 听课之后,大家觉得距离太远了,于是每个牧师统计了一下自己的课上所有的村民的地址,搬到了所有地址的中心地带,并且在海报上更新了自己的布道点的位置。 牧师每一次移动不可能离所有人都更近,有的人发现A牧师移动以后自己还不如去B牧师处听课更近,于是每个村民又去了离自己最近的布道点…… 就这样,牧师每个礼拜更新自己的位置,村民根据自己的情况选择布道点,最终稳定了下来。
获取数据 n 个 m 维的数据 随机生成 K 个 m 维的点 while(t) for(int i=0;i < n;i++) for(int j=0;j < k;j++) 计算点 i 到类 j 的距离 for(int i=0;i < k;i++) 1. 找出所有属于自己这一类的所有数据点 2. 把自己的坐标修改为这些数据点的中心点坐标 end
优缺点
算法调优与改进
收敛证明
每次确认中心点以后重新进行标记
对应 EM 算法中的 E 步
求当前参数条件下的 Expectation
。而
根据标记重新求中心点
对应 EM 算法中的 M 步
求似然函数最大化时(损失函数最小时)对应的参数
。
参考
推荐阅读
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。