腾讯社交广告算法大赛经验分享

大家好,我们的团队是由来自三个不同专业的小伙伴组成,我们的队名是长风破浪会有时,我是雨过天晴,这是我们团队第一次参加类似于kaggle这么大平台的数据挖掘比赛。目前在初赛B阶段我们的排名是101,尽管我们的成绩不是太好,但是我们从5月10号开始看题目,查资料等,看了以前kaggle比赛中关于点击率预估的获奖方案以及官方微信公众平台上发布的baseline和每周周冠军的经验分享获得了一定的经验。下面我就详细介绍一下。

1.数据集构造方面

首先,我们在看过好几遍题目后,去看所给的数据集发现train.csv中正负样本是1:40,这是一个明显的正负样本不均衡的问题,这就提示我门在构建模型的时候是要用哪些数据,常见的方法就是对负样本下采样(down sampling),对正样本上采样(upsampling),尽量使得正负样本均衡。其次,我们发现数据分布在6个.csv文件中,这里需要做的工作就是merge,但真正要把merge做好还是有点小技巧的,需要找对连接的标签和采用的连接方式,我们用了左外连接。

2.特征上的一些方法

在广告点击率和转化率的特征中,特征可以分为三类,一是categorical feature(无序特征),ordinal feature(有序特征), numberical feature(数值特征)。我们队对于特征的处理

1)使用统计频率、转化次数特征、转化率特征代替onehot,因为数据太大,one-hot编码会出现一个很大维数的稀疏矩阵,导致运行很慢以及运行好长时间不出结果。
2)对训练集和测试集中的重复样本构造是否第一次点击,是否中间点击,是否最后点击,第一次和最后一次间隔特征,大佬们所谓的trick也和我们的这一点差不多。
3)大量使用组合特征,主要是用户特征和广告上下文特征。很多成绩在baseline附近的萌新应该是直接使用单特征one-hot编码,基本上没有考虑组合特征以及特征之间的相关性。

3.模型构建
我们队使用的模型是模型xgboost,没有调参。这里还要注意线下线上的一致性,中三大学郭达雅大佬第一次分享的时候就提到了。另外,我们要考虑lightgbm和模型的融合,比如,在kaggle平台上avazu的比赛获奖第二名方案中作者用了random forest, GBDT(gradient boosting decision tree), Online SGD,Factorization machine四种模型,最后把他们按权重进行融合。
最后希望在决赛中小伙伴们们取得更好的成绩。谢谢。


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
腾讯的解压算法C的具体实现可以参考以下代码: ```c++ #include <iostream> #include <string> #include <stack> using namespace std; int main() { string str; cin >> str; stack<int> s; for (int right = 0; right < str.length(); right++) { if (str[right == '[' || str[right == '|') { s.push(right); } if (str[right == ']') { int k = s.top(); s.pop(); int left = s.top(); s.pop(); int num = stoi(str.substr(left + 1, k - left - 1)); string s1 = str.substr(k + 1, right - k - 1); string s2; for (int i = 0; i < num; i++) { s2 += s1; } str = str.replace(left, right - left + 1, s2); right = left + s2.size() - 1; } } cout << str; } ``` 这段代码通过使用栈来辅助解压缩。它遍历输入的字符串,当遇到'['或'|'时,将其索引位置压入栈中。当遇到']'时,从栈中弹出'['和'|'的索引位置,通过计算这两个索引位置之间的子字符串进行解压缩并替换原来的部分。最后输出解压缩后的字符串。 #### 引用[.reference_title] - *1* *3* [压缩算法_腾讯笔试](https://blog.csdn.net/qq_40212930/article/details/105011077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Leetcode刷题笔记题解(C++):腾讯笔试压缩算法(栈)](https://blog.csdn.net/qq_27524749/article/details/108181125)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值