数据来源:
天池-零基础入门推荐系统数据-数据需要在论坛里面找
赛题+数据理解
赛题背景
赛题以新闻APP中的新闻推荐为背景,要求选手根据用户历史浏览点击新闻文章的数据信息预测用户未来点击行为,即预测用户的最后一次点击的新闻文章。
数据说明
train_click_log.csv:训练集用户点击日志
testA_click_log.csv:测试集用户点击日志
articles.csv:新闻文章信息数据表
articles_emb.csv:新闻文章embedding向量表示
emb_0 到emb_249
sample_submit.csv:提交样例文件
列名说明:
Field | Description |
---|---|
user_id | 用户id |
click_article_id | 点击文章id |
click_timestamp | 点击时间戳 |
click_environment | 点击环境 |
click_deviceGroup | 点击设备组 |
click_os | 点击操作系统 |
click_country | 点击城市 |
click_region | 点击地区 |
click_referrer_type | 点击来源类型 |
article_id | 文章id,与click_article_id相对应 |
category_id | 文章类型id |
created_at_ts | 文章创建时间戳 |
words_count | 文章字数 |
emb_1,emb_2,…,emb_249 | 文章embedding向量表示 |
数据内容
articles= pd.read_csv("./articles.csv")
articles=articles.rename(columns={
'article_id': 'click_article_id'}) #为后面数据合并
#columns = [
'click_article_id', 'category_id', 'created_at_ts', 'words_count'
]
articles.click_article_id.nunique() #364047个文章
articles.category_id.nunique() #461个文章类型
articles.words_count.describe() #平均值在190个词,中位数在186个词
'''
count 364047.000000
mean 190.897727
std 59.502766
min 0.000000
25% 159.000000
50% 186.000000
75% 218.000000
max 6690.000000
'''
test_click = pd.read_csv("./testA_click_log.csv") #因为内存小,所以只用了测试集。严格应该训练集与测试集都要考虑
'''
columns=[
'user_id', 'click_article_id', 'click_timestamp', 'click_environment',
'click_deviceGroup', 'click_os', 'click_country', 'click_region',
'click_referrer_type'
]
'''
test_click.user_id.nunique() #50000名用户
test_click.click_article_id.value_counts() #各个文章被点击的次数,最多11363次,最少一次
test_click.click_environment.unique() #[1,2,4]三种类型
#plt.hist(test_click.click_environment) #可以看出大部分是4类型
test_click.click_deviceGroup.unique() #[1, 3, 4, 5, 2]五组环境
#plt.hist(test_click.click_deviceGroup) #大部分为1,3类型</