机器学习算法基础(三):k近邻算法

一、定义

k近邻算法用于分类:通过计算样本点和判别点之间的欧式距离,查看距离最小的k个样本点的所属类别,得出判别点的所属类别。
通俗意思就是,查看离判别点最近的k个邻居的所属类别,以少数服从多数的依据来判断其所属类别。
在这里插入图片描述
注:k近邻法需要对特征值进行标准化

二、API

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’)

  • n_neighbors为int类型的可选参数,默认为5,表示邻居数目;
  • algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},表示计算最近邻居的算法

三、案例

(一)案例一:最优签到点

1.题目:已知许多人的签到坐标、时间和签到的准确率,预测老刘的最优签到点?
2.数据:https://www.kaggle.com/navoshta/grid-knn/data
3.文件说明:train.csv,test.csv
row id:签入事件的id
x y:坐标
accuracy: 准确度,定位精度
time: 时间戳
place_id: 签到的位置,这也是你需要预测的内容
4.分析:查看最近k个邻居的签到选择点,通过计算老刘与邻居行为之间的距离,以少数服从多数的原则得出老刘的最优签到点。
特征值:序号、所有邻居的坐标、签到时间、定位的准确率
目标值:所有邻居的签到位置id
操作步骤:获取数据、数据处理(缩小数据范围、时间戳进行(年月日周时分秒)的处理当作新的特征、删除少于某个签到人数的位置、去除不必要的特征)、特征处理(标准化)、

from sklearn.model_selection import train.test_split
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
#1.读取数据
pd.read_csv(./data/FBlocation/train.csv)

#2.处理数据
#2.1缩小数据
data.query("x>1.0 & x<1.25 & y>2.5 &y<2.75")
#2.2处理时间数据
time_value=pd.to_datetime(data['time'],unit='s')#把时间戳转换为年-月-日的格式
time_value=pd.DatetimeIndex(time_v
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值