初识KNN
KNN算法是《机器学习实践》这本书介绍的第一个分类算法,可见其地位非凡。虽然随着入行资历增长,可能会越来越看轻它,但这就是历练的必经之路,要想过此路,先得跨过它。
KNN(K-NearestNeighbor),邻近算法。说白了就是近朱者赤近墨者黑的分类思想,白的附近算白帮,黑的附近算黑派。你跟谁走的比较近,你们多半是一类人。这就是算法核心思想的通俗理解。
鱼找鱼虾找虾乌龟找王八,好的吧,算你赢。
就是用鱼找鱼,虾找虾的样本构建一个分类模型,模型建立好了后,输入乌龟,帮你找到自己的圈儿——王八。
KNN的工作原理专业解说:存在一个样本数据集合,也叫训练样本集,并且样本集合中每个数据都有自己的标签,即我们知道样本集中每一条记录与所属分类关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。
KNN实操
教科书的样板代码如下,帮你敲好了~
我也根据自己输入样本的数据结构,改写一下算法~
顺利帮着乌龟找到王八
输入样本的一部分是这样:
待分类的数据长这样:
对每一个待分类的记录,调用KNN算法函数,结果写入到Dataframe中,完成。
结果如下所示:
优缺点分析
优点
1.易于理解、实现,无需估计参数,无需训练;
2.适合多分类问题,KNN比SVM表现要好。
缺点
1.计算量大,每一个待分类的记录都要计算其与每个已知的样本的距离
2.受到学习样本中每个分类的样本容量影响较大。
欢迎长按下方图片,识别途中二维码,关注“数据分析师手记”~~