K近邻算法04---案例:预测Facebook签到位置
2022/1/27 14:07:16
本文主要是介绍K近邻算法04---案例:预测Facebook签到位置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
注: 这部分看博客注释与运行截图就差不多能理解啦,把代码复制到自己的编译器中分别运行,认真体会每一步。
一、代码截图和运行截图
二、全部代码
import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import GridSearchCV # 读取数据 data = pd.read_csv('./data/FBlocation/train.csv') # 1.获取数据 read_csv # 2.数据基本处理 数据集划分,把时间戳提出成明显的时间特征(周几,几号,几点), 剔除签到人数少的place_id # 3.特征工程 标准化 # 4.机器学习 # 4.1 创建模型 # 4.2 训练模型 # 5.模型评估 分类 准确率 # 2.数据基本处理 # 取一小部分数据演示 data = data.query('x>2 & x<2.5 & y>2 & y<2.5') data.head() # 把时间戳提出成为明显的时间特征(周几,几号,几点)特征提取 用户地址--》经纬度 time = pd.to_datetime(data['time'], unit='s') time = pd.DatetimeIndex(time) time data['weekday'] = time.weekday data['day'] = time.day data['hour'] = time.hour data.head() # 最终目的:剔除签到人数少的place_id # 第一步:统计place_id出现的次数 并且切出['row_id']这一列 temp = data.groupby('place_id')['row_id'].count() # 第二步:找出temp>3的次数的index res = temp[temp>3].index #temp的index就是place_id账号 res # 第三步:找 data数据中 “place_id” 这一列中与 res 匹配的数据。 从而得出place_id大于3的数据 data[data['place_id'].isin(res)] # 数据集划分 x = data[['x','y','accuracy','weekday','day','hour']] y = data['place_id'] x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) # 3.特征工程 标准化 transfer = StandardScaler() x_train = transfer.fit_transform(x_train) x_test = transfer.transform(x_test) # 4.机器学习 # 4.1 创建模型 estimator = KNeighborsClassifier(algorithm='kd_tree') # 构建字典参数 param_dict = {'n_neighbors':[1,3,5]} # 初始化GSCV估计器 estimator_gscv = GridSearchCV(estimator, param_dict, cv = 3) # 4.2训练模型 estimator_gscv.fit(x_train, y_train) # 5.模型评估 estimator_gscv.score(x_test, y_test) # 获取最优模型 estimator_gscv.best_estimator_ # 获取最优超参数 estimator_gscv.best_params_
这篇关于K近邻算法04---案例:预测Facebook签到位置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain