| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 复合模型:GBDT+LR(特征组合的开端) -> 正文阅读 |
|
[数据结构与算法]复合模型:GBDT+LR(特征组合的开端) |
文章目录1 前言相比于协同过滤和矩阵分解利用用户的物品“相似度”进行推荐, 逻辑回归模型将问题看成了一个分类问题, 通过预测正样本的概率对物品进行排序。 这里的正样本可以是用户“点击”了某个商品或者“观看”了某个视频, 均是推荐系统希望用户产生“正反馈”行为, 因此逻辑回归模型将推荐问题转成成了一个点击率预估问题。 要注意这和前面的协同过滤不太一样了, 那里是“TOPN"推荐的问题, 而这里通过逻辑回归转成了一种点击率预估问题, 成了一种二分类, 如果模型预测用户会点击, 那么就进行推荐。 但是由于LR表达能力不强,无法进行特征交叉,特征筛选等一些列“高级”操作,所以在LR的基础上引入了GBDT模型(利用该模型可以有效的构建交叉特征)。 2 传统的推荐系统模型传统模型演化关系 这里对应的核心是 ——> gbdt+lr进行点击预测,然后应用到推荐系统当中。 3 GBDT+LR3.1 LR简介总的来说:
对于LR来讲有以下优点:
对于LR有以下缺点:
有兴趣的可以参考(最好推导一下):https://blog.csdn.net/The_dream1/article/details/113341791 3.2 GBDT简介3.2.1 首先解释下BoostingBoosting可以概括为训练数据样本权重分布(1和2)和弱学习器权重分布(3)两部分:
为了更好理解,我们可以看下第i论的模型迭代过程 第i轮迭代要做这么几件事: 新增弱分类器WeakClassifier(i)与弱分类器权重alpha(i) 通过数据集data与数据权重W(i)训练弱分类器WeakClassifier(i),并得出其分类错误率,以此计算出其弱分类器权重alpha(i) 通过加权投票表决的方法,让所有弱分类器进行加权投票表决的方法得到最终预测输出,计算最终分类错误率,如果最终错误率低于设定阈值(比如5%),那么迭代结束;如果最终错误率高于设定阈值,那么更新数据权重得到W(i+1) 举个列子: 做个比喻,就好比当年考试,考完后老师会建议我们整个错题本,把做错的题写下来,然后着重学习它。目标预测用户留存,id1 。模型1,留存,实际:不留存。(id1,…idn 50个)给一个相对更高权重。 (NEW训练集),模型2训练。(错id样本点)更高权重。~重复,直至10次(假设10个训练)。 ( 》》补!!!有点像调样本权重) 3.2.2 由Bosoting过渡到GDBTGBDT与传统的Boosting(AdaBoost)有稍微一点的区别,区别主要集中在训练集样本的分布上,Boosting关注判断错误的样本;GBDT关注的是上一次的残差。 GBDT的核心就在于,每一棵树学的是之前所有树结论和的残差(负梯度),这个残差就是一个加预测值后能得真实值的累加量。 比如A的真实年龄是18岁,但第一棵树的预测年龄是12岁,差了6岁,即残差为6岁。那么在第二棵树里我们把A的年龄设为6岁去学习,如果第二棵树真的能把A分到6岁的叶子节点,那累加两棵树的结论就是A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在1岁的残差,第三棵树里A的年龄就变成1岁,继续学。Boosting的最大好处在于,每一步的残差计算其实变相地增大了分错instance的权重,而已经分对的instance则都趋向于0。这样后面的树就能越来越专注那些前面被分错的instance。 3.3 GBDT+LR组合模型这个模型的总体结构可以用下面的结果图进行表示: 比如上图中, 有两棵树,x为一条输入样本,遍历两棵树后,x样本分别落到两颗树的叶子节点上,每个叶子节点对应LR一维特征,那么通过遍历树,就得到了该样本对应的所有LR特征。构造的新特征向量是取值0/1的。 比如左树有三个叶子节点,右树有两个叶子节点,最终的特征即为五维的向量。对于输入x,假设他落在左树第二个节点,编码[0,1,0],落在右树第二个节点则编码[0,1],所以整体的编码为[0,1,0,0,1],这类编码作为特征,输入到线性分类模型(LR or FM)中进行分类。 预测时,会先走 GBDT 的每棵树,得到某个叶子节点对应的一个离散特征(即一组特征组合),然后把该特征以 one-hot 形式传入 LR 进行线性加权预测。 这个方案应该比较简单了, 下面有几个关键的点我们需要了解:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 10:31:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |