kaggle竞赛

发布时间:2024-12-22 15:12

参加线上挑战:如Kaggle比赛,锻炼实战能力。 #生活乐趣# #生活日常# #个人成长建议# #学习新知识方法#

竞赛网址
参考代码

1.1赛题背景:

根据顾客的历史购买记录,预测Instacart的消费者将再次购买哪些产品?

1.2数据集详情:

aisle.csv 产品摆放位置说明 - 包含了aisle_id和aisle两列数据 departments.csv 产品所属类别 - 包含了department_id和department两列数据 products.csv 产品详情说明 - 包含product_id、product_name、aisle_id、department_id四列数据 orders.csv 订单详情说明 - 包含了order_id、user_id、eval_set、order_number、order_dow、order_hour_of_day、days_since_prior_order七列数据 orders_products__prior.csv 历史订单购买情况记录 - 包含了order_id、product_id、add_to_cart_order、reordered四列数据 orders_products__train.csv 训练集订单购买情况记录 - 包含了order_id、product_id、add_to_cart_order、reordered四列数据 sample_submission.csv 提交文件参考格式说明 12345678910111213 1.3评分指标:

mean F1 score

1.4提交格式:

包含order_id和products,如下图所示
提交文件格式说明

2.数据探索分析(EDA) 2.1数据导入

import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline path='/home/WLY/learn/Kaggle_example_learn/Instacart/Data/' aisles=pd.read_csv(path+'aisles.csv') departments = pd.read_csv(path + 'departments.csv') products = pd.read_csv(path + 'products.csv') orders = pd.read_csv(path + 'orders.csv') order_products__train = pd.read_csv(path + 'order_products__train.csv') order_products__prior = pd.read_csv(path + 'order_products__prior.csv') sample_submission = pd.read_csv(path + 'sample_submission.csv') 1234567891011121314 2.2数据探索性分析

1.aisles数据集分析

aisles数据集大小为134*2,共有134个不同的取值,代表产品摆放位置

1.查看数据集的大小,前五行数据,以及各列数据的不同取值情况 aisles.shape aisles.head() aisles.nunique() 1234

2.departments数据集分析

departments数据集大小为21*2,共有21个不同的取值,代表产品所属类别

departments.shape departments.head() departments.nunique() 123

3.products数据集分析

products数据集中大小为49688*4,共有49688个取值,代表产品名称

products.shape products.head() products.nunique() 123

4.orders数据集分析

orders数据集大小为3421083*7 上一单与本单的时间间隔(days_since_prior_order)含有缺失值,原因是order_number=1也就是第一单时,无上一单可言 order_number=1数目和用户id数目相同。说明order_number代表用户购买顺序 eval_set有三个类别取值(prior,train,test)即历史数据,训练数据,测试数据 查看用户购买总次数,即user_id出现的次数,得知最少购买次数为4,最大购买次数为100 order_dow一周七天,order_hour_of_day一天24小时 训练集和测试集中的用户均在历史数据集中出现过,但训练集和测试集的用户无交集,且为用户最新购买(购买顺序最大)

orders.shape orders.head() orders.nunique() 根据数据分布可以看出最后一列数据有缺失值。下一步对缺失值进行分析 将最后一列数据提取出来,判断是否为nan值,并定位在数据集中有缺失值的行,分析原因 结论:当有缺失值时,订购顺序为1,不存在上一单的情况,所以为nan orders.loc[orders.days_since_prior_order.isnull()].head() eval_set有3个类别取值,查看取值情况 结论:分别为历史数据,训练数据,测试数据 orders.eval_set.value_counts() 统计order_number=1的数目. 结论:order_number=1的数目和用户id数目相同,说明order_number代表用户购买顺序 print('There are %d samples with order_number=1'%np.sum(orders['order_number']==1)) 查看剩余两列数据的基础信息 结论:order_dow,order_hour_of_day属于正常值,一周7天,一天24小时 orders[['order_dow','order_hour_of_day']].describe() 查看用户购买总次数情况,即用户的记录 结论:一个用户最多记录为100,最少为4 orders['user_id'].value_counts() orders['user_id'].value_counts()[:5] orders['user_id'].value_counts()[-5:] 绘制用户购买总次数的分布图,横轴为用户购买总次数,纵轴为购买人数 tmp=pd.DataFrame(orders['user_id'].value_counts().values,columns=['user_correspoding_samples']) tmp=tmp['user_correspoding_samples'].value_counts() sns.barplot(x=tmp.index,y=tmp.values) 查看历史数据集,训练数据和测试数据之间用户的交叉情况,因为用户在推荐问题中都是一个很重要的特征变量 结论:train中所有用户均在prior中出现,test中所有用户均在prior中出现,但是train和test无相交用户情况 因此可知用户id在模型预测时,可能并不能带来增益,可以考虑删除 len(set(orders.loc[orders['eval_set']=='prior','user_id'])-set(orders.loc[orders['eval_set']=='train','user_id&#

1234567891011121314151617181920212223242526272829303132333435

网址:kaggle竞赛 https://www.yuejiaxmz.com/news/view/539828

相关内容

竞赛通知
低碳生活竞赛题
竞赛 | 在吗?我们有一个节能减排竞赛想和你谈一下!
节能减排竞赛简介
竞赛介绍 | 全国大学生节能减排社会实践与科技竞赛
【竞赛简介】全国大学生节能减排社会实践与科技竞赛
竞赛 | “未来城市”2019国际创新设计竞赛报名!10万大奖等你来拿!
环境保研加分竞赛 | 全国大学生节能减排社会实践与科技竞赛
中小学数学竞赛辅导策略
大学生旧物利用知识竞赛

随便看看