K-近邻算法之案例2:预测facebook签到位置
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签到位置相关推荐
- python人工智能——机器学习——分类算法-k近邻算法——kaggle案例: Facebook V: Predicting Check Ins
题目及翻译 Facebook and Kaggle are launching a machine learning engineering competition for 2016. Faceboo ...
- 预测facebook签到位置
文章目录 项目描述 数据集介绍 导入相关的包 获取数据集 数据处理 缩小数据范围 选择时间特征 去掉到达地点次数少的地方 确定特征值和目标值 分割数据集 特征工程 机器学习 模型评估 学习目标:熟练掌 ...
- 预测facebook签到位置运行过程中遇到的问题
代码如下 import pandas as pd from sklearn.model_selection import train_test_split, GridSearchCV from skl ...
- 【机器学习入门】(1) K近邻算法:原理、实例应用(红酒分类预测)附python完整代码及数据集
各位同学好,今天我向大家介绍一下python机器学习中的K近邻算法.内容有:K近邻算法的原理解析:实战案例--红酒分类预测.红酒数据集.完整代码在文章最下面. 案例简介:有178个红酒样本,每一款红酒 ...
- 机器学习算法---K近邻算法
K近邻算法 1. K-近邻算法简介 1.1 什么是K-近邻算法 根据你的"邻居"来推断出你的类别 K Nearest Neighbor算法⼜叫KNN算法,这个算法是机器学习⾥⾯⼀个 ...
- 机器学习:K近邻算法
一.K-近邻算法简介 1 什么是K-近邻算法 根据你的"邻居"来推断出你的类别 1.1 K-近邻算法(KNN)概念 K Nearest Neighbor算法又叫KNN算法,这个算法 ...
- 机器学习算法——系统性的学会使用 K近邻算法(KNN)
目录 1.K-近邻算法简介 1.1 什么是K-近邻算法 1.2 K-近邻算法(KNN)概念 (1)定义: (2)距离公式: 1.3 电影类型分析 1.4 KNN算法流程总结 2.k近邻算法api初步使 ...
- 统计学习方法笔记(一)-k近邻算法原理及python实现
k近邻法 k近邻算法 算法原理 距离度量 距离度量python实现 k近邻算法实现 案例地址 k近邻算法 kkk近邻法(kkk-NN)是一种基本分类和回归方法. 算法原理 输入:训练集 T={(x1, ...
- k近邻算法python_k-近邻算法的Python实现
本篇文章,想向各位介绍一个非常易于实现的机器学习算法:k-近邻算法,众所周知,k-近邻算法是非常常用的分类算法,现在给出k-近邻算法的官方解释:在一个样本数据集,也称作训练样本集,并且样本中每个数据都 ...
最新文章
- 混合云部署MySQL集群_数据库混合云解决方案
- Cubieboard2裸机开发之(四)定时器操作
- Linux运维学习大纲
- CodeBlocks问题解决
- 自己实现Int32Collection(.Net 1.1),以及效率问题的体会
- 【转】删除数据库中重复数据的几个方法
- Android自动化测试01-环境安装连接问题及解决
- Atitit.提升稳定性-----分析内存泄漏PermGen OOM跟解决之道...java
- python os.path.splitext()的用法_Python中的os.path路径模块中的操作方法总结
- AMPL—快速了解,秒懂它。
- APP首次启动提示开启定位服务
- 计算机联锁系统工程设计论文,计算机联锁控制系统论文
- RuoYi(若依)平台页面缓存无效
- 这3款浏览器体积小,好用速度快,堪比夸克
- 测试用例的设计方法!
- 通达信精确逃顶主图指标
- 过程计算机系统 pcs,炼钢AOD炉过程计算机系统设计与实现-软件工程专业毕业论文.docx...
- Java带GUI求柱体的体积
- 原假设“截距为0”双侧检验P值是多少_假设检验——这一篇文章就够了
- 思维导图怎么制作?建议收藏这些方法
热门文章
- 雷军的最后一次 重 大 创 业
- AI战“疫“之路:​揭秘高精准无感测温系统的全栈AI 技术
- 周伯文对话斯坦福AI实验室负责人:下一个NLP前沿是什么?
- 挑战弱监督学习的三大热门问题 AutoWSL2019挑战赛正式开赛
- AI时代,谈数据分析时我们要谈些什么?
- “打脸”世界杯:AI界没有预测比赛的章鱼保罗
- SpringBoot集成Swagger-Bootstrap-UI,页面更清爽!
- Java生鲜电商平台-监控模块的设计与架构
- 感受 lambda 之美!
- 11 个 Linux 终端命令,没用过的快去试试吧!