天池新人实战赛之[离线赛]——参赛笔记

  “天池新人实战赛之[离线赛]” 提供了根据阿里巴巴移动电商平台的真实用户-商品行为抽样出来的一定量用户在一个月时间(11.18~12.18)之内的移动端行为数据(D)。参赛者要使用大赛所提供的训练数据建立推荐模型,并输出用户在接下来一天(12.19)对商品子集(P)的购买行为的预测结果。

  竞赛题目与训练数据见官方网站:天池新人实战赛之[离线赛]

  首先我们查看一下大赛所提供的数据:


商品子集(P)

  商品子集(P)共62098条。

用户商品交互数据(D)

  用户商品交互数据(D)共23201027条。

  首先我根据用户的心理行为:前一天加入购物车的商品很有可能第二天就被购买,所以我直接提交了12月18号一天用户加入的购物车商品集,得到的成绩为:


天池新人实战赛之[离线赛]——参赛笔记_第1张图片
image.png

  这个成绩还算不错,7030支队伍中排名51。这种直接提交购物车的方式不涉及任何算法,我们暂且将其称之为规则,后续我会逐渐学习引入机器学习的相关算法,从而更好的对结果进行预测。本次对于第一次参加天池大赛来说是一件很鼓舞人心的事情。接下来分享此次比赛的全部代码。

import pandas as pd
import numpy as np

%matplotlib inline

# pandas读取商品子集(P)
train_item=pd.read_csv('input/tianchi_fresh_comp_train_item.csv')
# 查看商品子集数据数量
train_item['item_id'].count()
# 查看前10条商品子集数据
train_item.head(10)

# pandas读取用户商品交互数据(D)
train_user=pd.read_csv('input/tianchi_fresh_comp_train_user.csv')
# 查看用户商品交互数据数量
train_user['item_id'].count()
# 查看前10条商品子集数据
train_user.head(10)

# 查看每一列的异常值
train_user.apply(lambda x: sum(x.isnull()))

# 根据用户的心理行为,前一天的购物车商品很有可能第二天就被购买,
# 所以我们直接提交12月18号一天的购物车(跟商品子集交)

# 首先查看日期和行为数据
train_user['time'].value_counts()
train_user['behavior_type'].value_counts()

# 筛选出behavior_type==3,即加入购物车数据 
train_user=train_user[train_user["behavior_type"]==3]  
train_user['behavior_type'].value_counts()

# 筛选出12月18号一天的数据
import re
regex=re.compile(r'^2014-12-18+ \d+$')
def date(column):
    if re.match(regex,column['time']):
        date,hour=column['time'].split(' ')
        return date
    else:
        return 'null'
train_user['time']=train_user.apply(date,axis=1)

train_user=train_user[(train_user['time'] =='2014-12-18')]
train_user.head(10)

# 删除掉多余项
train_user=train_user.drop(['user_geohash'],axis=1)
train_user=train_user.drop(['item_category'],axis=1)
train_user=train_user.drop(['behavior_type'],axis=1)
train_user=train_user.drop(['time'],axis=1)

# 查看结果数据集
train_user['item_id'].count()
# 生成sample_submission.csv文件,保存
train_user.to_csv('output/sample_submission.csv',index=False)
结果数据集.png

  可以看到最后生成的结果集包含18487条数据,从大赛成绩来看F1评分0.75%,准确率0.003%,F1评分较好,准确率较差。做到这一步其实不难发现我们完全可以通过Excel将2014年12月18日加入购物车的数据筛选出来,得到以上结果,可见入门天池大数据大赛并不难。

参考链接:
1,天池体验(一)——新人实战赛之[离线赛]

你可能感兴趣的:(天池新人实战赛之[离线赛]——参赛笔记)