- 博客(17)
- 收藏
- 关注
原创 LinUCB算法理解
解决的问题1、UCB的算法context-free:没有充分利用推荐场景的上下文信息,为所有用户的选择展现商品的策略都是相同的,忽略了用户作为一个个活生生的个性本身的兴趣点、偏好、购买力等因素都是不同的,因而,同一个商品在不同的用户、不同的情景下接受程度是不同的原理1、每个arm维护一个特征向量:θα\theta_{\alpha}θα2、假设 : 每个arm的期望收益为a...
2019-11-01 19:36:17 9578 1
原创 catboost对类别特征处理的简单总结
catboost对类别特征处理简单总结ctb针对类别特征的处理怎么样做,使类别特征有更为丰富的表达?1、Mean Encoding1、【针对高基数的类别特征】Mean Encoding:均值编码场景:如果某一个特征是定性的(categorical),而这个特征的可能值非常多(高基数),那么平均数编码(mean encoding)是一种高效的编码方式。在实际应用中,这类特征工程能...
2019-10-09 16:18:26 7595 1
原创 LightGBM的理解和复习
LightGBM1、直方图算法为了减少内存占用和split finding所需的时间连续的浮点数特征值 => 离散化K个整数(默认bins是256,1个字节能表示的数字长度)遍历数据时,根据离散化后的值作为横轴索引,计算每个值的统计量(一阶和二阶梯度之和+样本计数)遍历所有bin,分别以当前bin作为分割点,计算出增益,在遍历过程中取最大的增益,以此时的特征和bin...
2019-10-09 16:12:50 1128
原创 Xgboost的理解和复习
文本主要是对Xgboost的复习,温故而知新,进一步理解Xgboost~原理-损失函数:1、XGB的损失函数同GBDT有什么区别Xgboost正则化的方法有哪些前文中GBDT的损失函数进行了一阶泰勒展开,轻松地知道下一棵树需要去拟合损失函数的负梯度。而在Xgboost中,损失函数增加了正则项,增加正则项后下一棵树优化的目标是什么呢,接下来会针对这些问题进行理解分析。1、Xg...
2019-10-09 16:11:11 1441
原创 Gradient Boosting框架的理解和复习
文本主要是对Gradient Boosting框架的复习,温故而知新,进一步理解Gradient Boosting框架~文章结构为:1、从adaboost损失函数理解Gradient Boosting的目的(扩展损失函数)2、从梯度下降角度理解前向加法模型(为什么拟合的是损失函数的负梯度)3、同林轩田技法中方法做结合4、总结不同boosting和GBDT1、从前向加法模型角度思...
2019-10-09 16:07:32 1290
原创 adaboost的理解和复习
本文主要是对adaboost的复习,把adaboost知识结构化,温故而知新~1、adaboost引出思想Boosting思想串行,根据上一轮基学习器学习的结果,来优化下一轮学习的样本权重主要思想:上一轮基学习器预测错误的样本,在下一轮学习中增加权重,使得犯错的样本在下一次学习中获得更多的关注,不断提高整体模型的预测能力2、adaboost预测原理训练阶段1、第一...
2019-10-09 15:59:37 750
转载 为什么树模型不适合高维稀疏特征
转载自:https://blog.csdn.net/papaaa/article/details/79910449思考角度比较好,做个记录这个问题我也是思考了好久,在平时的项目中也遇到了不少 case,确实高维稀疏特征的时候,使用 gbdt 很容易过拟合。但是还是不知道为啥,后来深入思考了一下模型的特点,发现了一些有趣的地方。假设有1w 个样本, y类别0和1,100维特征,其中10个样...
2019-09-27 10:19:09 3946
原创 C++ new和malloc
本文主要来自对参考资料的整理,加深对C++新建/删除对象的理解两种new的方法:C++在创建对象的时候可以采用两种方式:(例如类名为Test) Test test 或者 Test* pTest = new Test()。这两种方法都可以实例化一个对象,但是这两种方法有很大的区别,区别在于对象内容所在的内存空间不同,众所周知,内存的分配方式有三种从静态存储区域分配。内存在程序编译的时候...
2019-09-26 21:39:15 832
原创 Batch Normalization理解
本文主要是对Batch Normalization的简析和自己的理解Batch Normalization解决了什么问题为了解决训练过程中输入数据分布漂移——Internal Covariate ShiftICS和ICS的问题什么是ICS?1、IID:机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试...
2019-09-25 14:58:49 781
原创 逻辑回归(LR)理解及复习
本文主要是对LR的复习,把LR知识结构化,温故而知新~LR分类过程1、LR的假设函数LR假设函数P(y=1∣x)=11+e−wTxP(y=1|x) = \frac{1}{1+e^{-w^Tx}}P(y=1∣x)=1+e−wTx1sigmoid函数的理解关于LR为什么用sigmoid函数,总共有两个理解:1、从对数几率logit角度理解:在统计学中,概率和odds都是用于...
2019-09-24 16:32:53 1027
原创 随机森林(Random forest)的理解和复习
本文主要是对随机森林的复习,把随机森林知识结构化,温故而知新~1、分类过程样本采样方法:Bagging1、Bagging过程(Bootstrapping集成)有放回的随机抽样2、Voting过程(每个基学习器进行投票)针对回归:每个基学习器预测结果进行平均针对分类:每个基学习器预测结果进行投票,得票数最多的类为预测类随机森林的随机性1、样本的随机性(Bagging): 在...
2019-09-23 19:24:29 1987
原创 决策树理解和复习
本文主要是对决策树的复习,把决策树知识结构化,温故而知新~1、决策树在结点分裂时针对特征的处理1、ID3、C4.5:针对数值特征的处理:ID3不支持C4.5:将连续值离散化,具体方法是将这些值从小到大排序,记为 a1,a2,...,an{a^1, a^2, ..., a^n}a1,a2,...,an, 每次取 ai+ai+12\frac{a^i+a^{i+1}}{...
2019-09-23 13:30:58 878
原创 Bloom Filter理解
解决的问题1、BitSet/布隆过滤器: 大数据量的时候, 判断一个元素是否在一个集合中2、计数布隆过滤器:大数据量的时候,针对元素进行计数Bitset原理int => 4个字节 = 32位long => 8个字节 = 64位一个很长的二进制向量,每一个bit为初始为0添加元素时,将这个元素index对应的位置为1查询元素时,如果这个元素作为index对应位为...
2019-09-20 17:05:48 812
原创 FTRL算法理解
本文主要是对FTRL算法来源、原理、应用的总结和自己的思考。解决的问题1、训练数据层面:数据量大、特征规模大2、常用的LR和FM这类模型的参数学习,传统的学习算法是batch learning算法,无法有效地处理大规模的数据集,也无法有效地处理大规模的在线数据流3、需要高效的online learning算法来解决这种问题在线学习算法SGDwt+1=wt−ntgtw_{t+1} =...
2019-09-20 15:43:51 1736
原创 Wide&deep算法原理及思考
文章主要是对wide&deep的总结,和自己对于模型的思考模型解决问题使得训练得到的模型能够同时获得记忆(memorization)和泛化(generalization)能力。我理解为解决推荐系统EE问题的一种思路记忆:Exploitation泛化:Exploration模型出现之前的解决方案和问题一、记忆:Exploitation:1、原始Dense特征 => ...
2019-09-19 00:49:07 2277
原创 DeepFM算法原理及实现
模型解决问题因为DeepFM模型基本是在Wide&deep的基础上进行改进而来,所有DeepFM主要解决的问题是:1、Wide&deep 模型需要手动做特征交叉,而DeepFM因为有FM层进行一阶和二阶特征自动组合,所以不需要手动特征工程2、FM 模块和 Deep 模块共享 Feature Embedding 部分,可以更快的训练,以及更精确的训练学习3、能同时学习低阶...
2019-09-17 18:04:49 3252 1
原创 Context-free Bandit算法
文章是对Context-free Bandit算法进行总结,以及对每个策略的一些思考。主要会从以下4个方面说明Context-free Bandit,如有问题,欢迎指正讨论~1、Bandit来源2、应用场景3、算法原理4、算法缺点来源多臂老虎机:刚进赌场,每个臂代表着一个老虎机,怎么选择最优的赢钱策略应用场景1、推荐系统中的EE问题2、推荐系统的冷启动问题原理(...
2019-09-15 12:53:23 1123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人