【k-means学习笔记】
作者:互联网
目录
算法描述
1.问题假设:操场上有k个体育老师和k个班的学生,各班学生围着各自的老师在玩耍,现求各个老师的坐标。
2.数据输入:所有学生的坐标位置,但不知道每个学生对应的老师是谁。
3.算法过程:
①随机选取k个坐标。
②计算每个学生与k个老师的坐标距离并以距离为原则将此学生归类到最近的老师。
③将所有学生归类完毕后,计算每个老师类中学生坐标的均值,并以此均值作为老师坐标的更新值。
知识储备
1.k-means算法不要求数据有标签(即不知道每个学生对应的老师),所以为无监督。
举个栗子
实现代码
1.debug代码引用《机器学习实战》提供的demon,此书作者提供完整代码和数据集,强烈推荐。[1]
2.sklearn实现版本。[3]
算法分析
1.在例子中引用少量二维数据,所以k值的选取显而易见。但在三维以上数据集中,很难确定k值的选取。
2.对噪点敏感;倘若某个学生逃课了(不提倡),在更新质心(老师坐标),质心坐标出现明显偏差。
3.算法的计算复杂度是数据量质心数迭代数据集的次数,计算相对复杂。
4.因质心的初始值是随机生成的,最终结果受初始值影响会收敛到一个局部最优的位置。可以跑多次该算法以寻找相对较优结果,但计算复杂度更高了。
资料引用
[1]GitHub:https://github.com/wzy6642/Machine-Learning-in-Action-Python3/tree/master/K_Means_Project1
[2]CSDN:https://blog.csdn.net/jiaoyangwm/article/details/79669387
[3]CSDN:https://blog.csdn.net/guihenao4010/article/details/85159661
此算法笔记会在CSDN、知乎、b站及公众号同步更新,账号名为一枚嘉应子。转载注明出处,侵权必究。
标签:means,老师,笔记,学生,学习,算法,CSDN,坐标,质心 来源: https://blog.csdn.net/weixin_43417351/article/details/122010037