1 K-Means
说明:类别的个数是提前定义好的,属于无监督学习算法。
1.1 算法描述
- 输入数据和K值
- 随机生成K个点
- 对输入的数据,计算每个点属于哪一类
- 对于K个点,找出所有属于自己这一类的点,然后把坐标修改为这些点的中心
- 判断算法是否收敛,若没有收敛返会3,否则输出结果。判断收敛的条件是误差平方和,如以下公式:
当两次迭代J的差值小于某一阈值时,即ΔJ<δ时,则终止迭代
1.2 K值的选择
1.3 K-means的缺点
- k的选取不好把握;
- 如果数据的类型不平衡,比如数据量严重失衡或者类别的方差不同,则聚类效果不佳;
- 采用的是迭代的方法,只能得到局部最优解;
2 KNN(K Nearest Neighbors)
说明:属于有监督学习算法。
KNN的原理就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个