Kmeans和KNN区别

1、Kmeans

kmeans是无监督学习,人工先验指定K代表聚类中心,然后根据这个聚类中心,迭代更新;设置最大的迭代次数下,聚类中心不在改变为算法终止的条件。 通过可以通过手肘法,取最佳的K值。

2、KNN

2.1 简介

knn是监督学习,解决分类任务和回归任务: 分类任务: 1、计算出样本数据和待分类数据的距离; 2、为待分类数据选择K个与其距离最小的样本; 3、统计出K个样本中大多数样本所属的分类; 4、这个分类就是待分类数据所属的分类。 回归任务: 通常对周围的K个点,求平均得到最后预测点的回归值。

2.2 面试容易问到的

k设置小的问题

k设置比较重要,在分类任务中,如果k值设置较小,算法的估计误差比较大,预测结果会对近邻点十分敏感,也就是说,如果近邻点是噪声点的话,预测就会出错。因此,k值过小容易导致KNN算法的过拟合(容易将噪音点识别为分类点)。

k设置大的问题

相关,设置偏大的话,距离较远的训练样本也能够对实例预测结果产生影响。这时候,模型相对比较鲁棒,不会因为个别噪声点对最终预测结果产生影响。但是缺点也十分明显:算法的近邻误差会偏大,距离较远的点(与预测实例不相似)也会同样对预测结果产生影响,使得预测结果产生较大偏差,此时模型容易发生欠拟合。

总结

因此,在实际工程实践中,我们一般采用交叉验证的方式选取k值。通过以上分析可知,一般k值选得比较小,我们会在较小范围内选取k值,同时把测试集上准确率最高的那个确定为最终的算法超参数k。

全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务