K-近邻算法之案例2:预测facebook签到位置

1 数据集介绍   【https://www.kaggle.com 天池,人工智能比赛网址】

数据介绍:将根据用户的位置,准确性和时间戳预测用户正在查看的业务。

train.csv,test.csv
row_id:登记事件的ID
xy:坐标
准确性:定位准确性
时间:时间戳
place_id:业务的ID,这是您预测的目标

官网:https://www.kaggle.com/navoshta/grid-knn/data

2 步骤分析

  • 对于数据做一些基本处理(这里所做的一些处理不一定达到很好的效果,我们只是简单尝试,有些特征我们可以根据一些特征选择的方式去做处理)

    • 1 缩小数据集范围 DataFrame.query()

    • 2 选取有用的时间特征

    • 3 将签到位置少于n个用户的删除

  • 分割数据集

  • 标准化处理

  • k-近邻预测

3 代码过程

  • 1.获取数据集
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier# 1、获取数据集
facebook = pd.read_csv("./data/FBlocation/train.csv")
  • 2.基本数据处理
# 2.基本数据处理
# 2.1 缩小数据范围
facebook_data = facebook.query("x>2.0 & x<2.5 & y>2.0 & y<2.5")
# 2.2 选择时间特征
time = pd.to_datetime(facebook_data["time"], unit="s")
time = pd.DatetimeIndex(time)
facebook_data["day"] = time.day
facebook_data["hour"] = time.hour
facebook_data["weekday"] = time.weekday
# 2.3 去掉签到较少的地方
place_count = facebook_data.groupby("place_id").count()
place_count = place_count[place_count["row_id"]>3]
facebook_data = facebook_data[facebook_data["place_id"].isin(place_count.index)]
# 2.4 确定特征值和目标值
x = facebook_data[["x", "y", "accuracy", "day", "hour", "weekday"]]
y = facebook_data["place_id"]
# 2.5 分割数据集
x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=22)
  • 特征工程--特征预处理(标准化)
# 3.特征工程--特征预处理(标准化)
# 3.1 实例化一个转换器
transfer = StandardScaler()
# 3.2 调用fit_transform
x_train = transfer.fit_transform(x_train)
x_test = transfer.fit_transform(x_test)
  • 机器学习--knn+cv
# 4.机器学习--knn+cv
# 4.1 实例化一个估计器
estimator = KNeighborsClassifier()
# 4.2 调用gridsearchCV
param_grid = {"n_neighbors": [1, 3, 5, 7, 9]}
estimator = GridSearchCV(estimator, param_grid=param_grid, cv=5)
# 4.3 模型训练
estimator.fit(x_train, y_train)
  • 模型评估
# 5.模型评估
# 5.1 基本评估方式
score = estimator.score(x_test, y_test)
print("最后预测的准确率为:\n", score)y_predict = estimator.predict(x_test)
print("最后的预测值为:\n", y_predict)
print("预测值和真实值的对比情况:\n", y_predict == y_test)# 5.2 使用交叉验证后的评估方式
print("在交叉验证中验证的最好结果:\n", estimator.best_score_)
print("最好的参数模型:\n", estimator.best_estimator_)
print("每次交叉验证后的验证集准确率结果和训练集准确率结果:\n",estimator.cv_results_)

运行结果:

K-近邻算法之案例2:预测facebook签到位置相关推荐

  1. python人工智能——机器学习——分类算法-k近邻算法——kaggle案例: Facebook V: Predicting Check Ins

    题目及翻译 Facebook and Kaggle are launching a machine learning engineering competition for 2016. Faceboo ...

  2. 预测facebook签到位置

    文章目录 项目描述 数据集介绍 导入相关的包 获取数据集 数据处理 缩小数据范围 选择时间特征 去掉到达地点次数少的地方 确定特征值和目标值 分割数据集 特征工程 机器学习 模型评估 学习目标:熟练掌 ...

  3. 预测facebook签到位置运行过程中遇到的问题

    代码如下 import pandas as pd from sklearn.model_selection import train_test_split, GridSearchCV from skl ...

  4. 【机器学习入门】(1) K近邻算法:原理、实例应用(红酒分类预测)附python完整代码及数据集

    各位同学好,今天我向大家介绍一下python机器学习中的K近邻算法.内容有:K近邻算法的原理解析:实战案例--红酒分类预测.红酒数据集.完整代码在文章最下面. 案例简介:有178个红酒样本,每一款红酒 ...

  5. 机器学习算法---K近邻算法

    K近邻算法 1. K-近邻算法简介 1.1 什么是K-近邻算法 根据你的"邻居"来推断出你的类别 K Nearest Neighbor算法⼜叫KNN算法,这个算法是机器学习⾥⾯⼀个 ...

  6. 机器学习:K近邻算法

    一.K-近邻算法简介 1 什么是K-近邻算法 根据你的"邻居"来推断出你的类别 1.1 K-近邻算法(KNN)概念 K Nearest Neighbor算法又叫KNN算法,这个算法 ...

  7. 机器学习算法——系统性的学会使用 K近邻算法(KNN)

    目录 1.K-近邻算法简介 1.1 什么是K-近邻算法 1.2 K-近邻算法(KNN)概念 (1)定义: (2)距离公式: 1.3 电影类型分析 1.4 KNN算法流程总结 2.k近邻算法api初步使 ...

  8. 统计学习方法笔记(一)-k近邻算法原理及python实现

    k近邻法 k近邻算法 算法原理 距离度量 距离度量python实现 k近邻算法实现 案例地址 k近邻算法 kkk近邻法(kkk-NN)是一种基本分类和回归方法. 算法原理 输入:训练集 T={(x1, ...

  9. k近邻算法python_k-近邻算法的Python实现

    本篇文章,想向各位介绍一个非常易于实现的机器学习算法:k-近邻算法,众所周知,k-近邻算法是非常常用的分类算法,现在给出k-近邻算法的官方解释:在一个样本数据集,也称作训练样本集,并且样本中每个数据都 ...

最新文章

  1. 混合云部署MySQL集群_数据库混合云解决方案
  2. Cubieboard2裸机开发之(四)定时器操作
  3. Linux运维学习大纲
  4. CodeBlocks问题解决
  5. 自己实现Int32Collection(.Net 1.1),以及效率问题的体会
  6. 【转】删除数据库中重复数据的几个方法
  7. Android自动化测试01-环境安装连接问题及解决
  8. Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java
  9. python os.path.splitext()的用法_Python中的os.path路径模块中的操作方法总结
  10. AMPL—快速了解,秒懂它。
  11. APP首次启动提示开启定位服务
  12. 计算机联锁系统工程设计论文,计算机联锁控制系统论文
  13. RuoYi(若依)平台页面缓存无效
  14. 这3款浏览器体积小,好用速度快,堪比夸克
  15. 测试用例的设计方法!
  16. 通达信精确逃顶主图指标
  17. 过程计算机系统 pcs,炼钢AOD炉过程计算机系统设计与实现-软件工程专业毕业论文.docx...
  18. Java带GUI求柱体的体积
  19. 原假设“截距为0”双侧检验P值是多少_假设检验——这一篇文章就够了
  20. 思维导图怎么制作?建议收藏这些方法

热门文章

  1. 雷军的最后一次 重 大 创 业
  2. AI战“疫“之路:​揭秘高精准无感测温系统的全栈AI 技术
  3. 周伯文对话斯坦福AI实验室负责人:下一个NLP前沿是什么?
  4. 挑战弱监督学习的三大热门问题 AutoWSL2019挑战赛正式开赛
  5. AI时代,谈数据分析时我们要谈些什么?
  6. “打脸”世界杯:AI界没有预测比赛的章鱼保罗
  7. SpringBoot集成Swagger-Bootstrap-UI,页面更清爽!
  8. Java生鲜电商平台-监控模块的设计与架构
  9. 感受 lambda 之美!
  10. 11 个 Linux 终端命令,没用过的快去试试吧!