k近邻算法(KNN)定义:
如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
来源:KNN算法最早是由Cover和Hart提出的一种分类算法
思想:相似的样本,特征之间的值应该都是相似的
特征处理:需要做标准化处理
计算距离公式:
两个样本的距离可以通过如下公式计算,又叫欧式距离
比如说:a(a1,a2,a3),b(b1,b2,b3)
sklearn k-近邻算法API:
sklearn.neighbors.KNeighborsClassifier
k近邻算法实例实现-预测入住位置
分析项目:
项目属于分类问题:
特征值:x,y坐标 ,定位准确性,时间 目标值:入住位置ID(place_id)
数据预处理:
1.由于数据量大,节省时间:缩小X,Y的值 0<x<10 0<y<10
2.时间戳进行处理:转化为日期格式(年,月,日,周,时分秒)
3.少于指定签到人数的位置删除
KNN使用分析:
1、k值取多大?有什么影响?
k值取很小:容易受异常点影响
k值取很大:容易受最近数据太多导致比例变化
2.k-近邻算法优缺点
优点:简单,易于理解,易于实现,
无需估计参数,无需训练
缺点:
•
懒惰算法,对测试样本分类时的计算量大,内存开销大
•
必须指定
K
值,
K
值选择不当则分类精度不能保证
使用场景:小数据场景,几千~几万样本,具体场景具体业务去测试