第六章:聚类
顾名思义,聚类就是把一堆数据分成一簇一簇的类;
k-means算法
这是一种用于聚类的算法,需要在聚类之前率先确定数据需要分成多少簇,不同的簇数会导致不同的结果,因此使用者也需要选择合适的簇数量;
这是原数据在图上的位置:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/82c3eca86ecff148291d65dee2a9e80c.png#pic_center)
让我们大概选择三个重心:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/86e03a1159712a8e0452958ceccb30b4.png#pic_center)
算法计算每个元素到最近重心的距离,将每个元素划分近离自己最近的簇中:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/92a381d72fc9c32db99ced61838b1ab8.png#pic_center)
重新计算同簇元素的重心,将重心移动到计算出来的重心:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0dc7e49e538e8eedeffe643404dd0e64.png#pic_center)
计算中…
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b2cb9dedc51e7746e1b4063281239429.png#pic_center)
最后重心会固定在一个地方不再移动,这时聚类完成;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cf006eae02ef212680dfbc2878463f59.png#pic_center)
需要注意的是:重心的初始位置不同,聚类的结果也是不同的;因此选择合适的初始重心,是一门技术活,可以多尝试几次选择最理想的聚类结果;