零基础入门推荐系统 - 新闻推荐-Task1 (DataWhale学习小组)

零基础入门推荐系统 - 新闻推荐-Task1 DataWhale学习小组

赛题理解和Baseline

datawhale在天池举办的零基础入门比赛:
https://tianchi.aliyun.com/competition/entrance/531842/information

Baseline

主要通过论坛提供的baseline进行了一个初步探索。
使用的数据主要是train_click_log(没有考虑新闻的内容articles_emb),使用的算法是itemCF(基于商品的协同过滤)

新增知识点

  • for循环中的进度条显示
from tqdm import tqdm
for i in tqdm(range(n)):
  • 对于比较大的数据集的处理tips:

    1. 修改变量类型以达到节约内存的目的
    2. 从训练集中划出一部分数据来调试代码
    3. 将需要用的临时数据作为pickle文件存储,方便导入导出
  • itemCF的原理:
    根据用户的点击日记生成相似矩阵,利用相似矩阵进行新文章的推荐 。

  • item的相似度计算:

    1. 考虑用户浏览的item数量
    2. 考虑item被浏览的数量
  • DataFrame及字典中的数据处理方法

    1. 分组后使用apply查询每组最值,assert的使用
    tmp = recall_df.groupby('user_id').apply(lambda x: x['rank'].max()) assert tmp.min() >= topk
    
    1. 数据框重构
    submit = recall_df[recall_df['rank'] <= topk].set_index(['user_id', 'rank']).unstack(-1).reset_index()
    
    submit.columns = [int(col) if isinstance(col, int) else col for col in submit.columns.droplevel(0)]
    
    1. 字典排序并取topk值
    item_rank = sorted(item_rank.items(), key=lambda x: x[1], reverse=True)[:recall_item_num]
    
  • 其他:
    天池实验室的notebook的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值