- 博客(269)
- 资源 (20)
- 收藏
- 关注
原创 推荐系统中常用的embedding方法
简单来说,Embedding就是用一个低维的向量表示一个物体,可以是一个词,或是一个商品,或是一个电影等等。在传统机器学习模型构建过程中,经常使用one hot encoding对离散特征,特别是ID类特征进行编码,但由于one hot encoding的维度等于特征的总数,比如阿里的商品one hot encoding的维度就至少是千万量级的,而且有的特征还会增量更新,所以这样的编码方式得到的特征向量是非常稀疏的,甚至用multi hot encoding对ID特征编码也会是一个非常稀疏的向量。如果深
2022-03-06 18:10:34
13288
原创 对比学习的一个原则3个关键点
参考张俊林老师的文章对比学习(Contrastive Learning):研究进展精要,这篇文章读完后对对比学习基本概念、模型结构有了深刻的理解。再次感谢,遂据此整理成了笔记,以便帮助学习(主要是俊林老师的这片文章太过轰动,已经不能转载了),其中还有一篇神文利用Contrastive Learning对抗数据噪声:对比学习在微博场景的实践,帮助我对对比学习的应用场景理解更加深刻,对比学习居然这么多的玩法~1 对比学习对比学习是自监督学习的一种,也就是说,不依赖标注数据,要从无标注图像中自己学习知识。怎么
2022-03-06 17:57:38
5612
原创 transformer - Attention is all you need
激活函数的可以为线性模型引入非线形因素,从而解决线形模型难以解决的问题。设计一个分类起将上面的三角和圆分开,以感知机作为分类起为例,考虑一下几个情况:单层感知机多层感知机单层感知机+激活函数多层感知机+激活函数1 单层感知机单层感知机表达式为y=w1x1+w2x2+by = w_1x_1 + w_2x_2 + by=w1x1+w2x2+b,它可以划出一条线, 把平面分割开。对于输入特征x1x_1x1和特征x2x_2x2,如果y>0y>0y>0,证明是正类;
2022-02-13 18:27:32
914
原创 神经网络参数初始化方法
神经网络训练的过程就是对网络权重不断学习更新的过程,网络初始权重对网络的训练非常重要。不合适的初始化方法可能会导致网络参数传播过程中产生梯度消失、梯度爆炸等现象。常用的初始化方法有随机初始化、Xavier初始化、he初始化等1 零初始化对于逻辑回归,网络权重是可以初始化为0的;对于深度神经网络,网络权重和偏置是不可以一起初始化为0的,不然会造成每层的网络所有节点输出是一致的,具体分析可以参考神经网络权重为什么不能初始化为0?。2 随机初始化随机初始化的时候常常采用高斯或均匀分布初始化网络权重。这种
2022-02-07 15:10:08
4095
原创 点击率预估-负采样后校准方法
在训练点击率预估模型的时候,训练数据中正负样本不均衡是常见的现象,对于这种问题,会对负样本进行采样,然后将采样后的负样本和正样本一起作为训练数据来训练ctr模型。由于负采样的缘故,会导致线上待预测数据分布与离线训练分布有很大差距,线上预估分数往往会高于真实值,所以非常有必要进行校准。校准过程如下变量定义。p′p^{'}p′已经采样后的预估概率(训练)ppp未经采样的预估概率(测试)NpN_pNp原始正样本数量NnN_nNn采样后负样本数量rrr负样本的采样比例,分数,例如0.1Nnr
2022-02-07 15:09:16
620
原创 点击率预估-负采样后校准方法
在训练点击率预估模型的时候,训练数据中正负样本不均衡是常见的现象,对于这种问题,会对负样本进行采样,然后将采样后的负样本和正样本一起作为训练数据来训练ctr模型。由于负采样的缘故,会导致线上待预测数据分布与离线训练分布有很大差距,线上预估分数往往会高于真实值,所以非常有必要进行校准。校准过程如下变量定义。p′p^{'}p′已经采样后的预估概率(训练)ppp未经采样的预估概率(测试)NpN_pNp原始正样本数量NnN_nNn采样后负样本数量rrr负样本的采样比例,分数,例如0.1Nnr
2022-01-23 22:01:31
2129
原创 平方误差损失函数和交叉熵损失函数分别适合什么场景
平方损失函数更适合输出为连续,且最后一层没有sigmoid或者softMax激活函数的网络交叉熵损失函数更适合分类场景假设网络最后一层输出为zlz^lzl,激活函数为f(x)=sigmoid(x)f(x)=sigmoid(x)f(x)=sigmoid(x),预测的label为a=f(zl)a = f(z^l)a=f(zl),真实标签为yyy。平方损失函数L=12(y−a)2L = \frac{1}{2}(y-a)^2L=21(y−a)2相对于输出层zlz^lzl的导数为∂L∂zl=−(y−a)f′
2022-01-20 09:30:08
1365
原创 推荐系统中常见的bias及其解决方法
1 bias 的几种类型position bias: 用户倾向于点击位置靠前的用户exposure bias: 用户只能看到曝光后的并产生交互,但数据中没交互的item不代表用户不喜欢,可能是没曝光selection bias: 用户倾向于给非常喜欢或者非常不喜欢的打分conformity bias: 用户打分的分数倾向于和群体观点保持一致inductive bias: 对模型的各种假设,用于提升泛化性,通常是有利的 ,例如我们常用的奥卡姆剃刀原理、CNN的局部性假设、RNN的时间依赖假设、注意
2022-01-16 20:41:47
1548
原创 神经网络模型训练集和测试集loss不下降原因汇总
1 训练的时候 loss 不下降模型结构问题。当模型结构不好、规模小时,模型对数据的拟合能力不足。训练时间问题。不同的模型有不同的计算量,当需要的计算量很大时,耗时也会很大权重初始化问题。常用的初始化方案有全零初始化、正态分布初始化和均匀分布初始化等,合适的初始化方案很重要,之前提到过神经网络初始化为0可能会带来的影响正则化问题。L1、L2以及Dropout是为了防止过拟合的,当训练集loss下不来时,就要考虑一下是不是正则化过度,导致模型欠拟合了。正则化相关可参考正则化之L1 & L2
2022-01-12 20:58:45
8371
原创 常用的几个激活函数
0 人工神经元的工作原理1 sigmoidf(x)=11+e(−x)f(x) = \frac{1}{1+e^(-x)}f(x)=1+e(−x)1f′(x)=f(x)⋅(1−f(x))f^{'}(x) = f(x) · (1 - f(x))f′(x)=f(x)⋅(1−f(x))1、特点:Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合
2022-01-09 15:20:52
616
原创 模型利器 - 召回/排序中的负样本优化方法
1 召回中的负样本优化展示未点击数据。常用的方式,但是会导致Sample Selection Bias,可以通过和其他负样本选择方法来缓解全局随机选择负例。从全局候选物料里面随机抽取item做为召回或者粗排的负例。例如 Youtube DNN双塔模型。虽然保证了输入数据的分布一致性,但这么选择的负例和正例差异太大,导致模型太好区分,可能学到的知识不够充分。batch 内随机负例。输入数据只有正例,在训练的时候,在batch内随机采样一定比例的负样本,一定程度上可以解决Sample Selection
2022-01-05 22:50:33
1806
原创 残差神经网络为什么可以缓解梯度消失?
0 背景随着网络层数的加深,目标函数越来越容易陷入局部最优解,同时,随着层数增加,梯度消失问题更加严重,特别是激活函数为sigmoid/softmax/tanh等,使得原理输出层的网络参数得不到有效的学习。因此为了改善这个问题,诞生了许多方法,正则化、dropout、设计特殊网络、修改训练算法等。残差网络(Residual Network)是一种非常有效的缓解梯度消失问题网络,极大的提高了可以有效训练的网络的深度。残差单元可以以跳层连接的形式实现,即将单元的输入直接与单元输出加在一起,然后再激活。因此残
2022-01-03 18:02:14
3564
原创 卷积神经网络中的池化操作
常用的池化操作主要针对非重叠区域,包括均值池化、最大池化等。其中均值池化通过对邻域内特征数值求平均来实现,能够抑制由于邻域大小受限造成估计值方差增大的现象,特点是对背景的保留效果更好。最大池化则通过取邻域内特征的最大值来实现,能够抑制网络参数误差造成估计均值偏移的现象,特点是更好地提取纹理信息。池化操作的本质是降采样。特殊的池化方式还包括对相邻重叠区域的池化、空间金字塔池化。 相邻重叠区域的池化,顾名思义,是采用比窗口宽度更小的步长,使得窗口在每次滑动时存在重叠的区域。空间金字塔池化主要考虑了多尺度信息
2021-12-29 09:26:00
1689
原创 卷积神经网络中的稀疏交互和参数共享
卷积神经网络(Convolutional Neural Networks,CNN)是一种前馈神经网络,它的特点是每层的神经元节点只响应前一层局部区域范围内的神经元。这也是与其他的前向神经网络不同之处,例如全连接网络中每一个神经元节点响应前一层的全部节点。稀疏交互在传统神经网络中,网络层之间输入与输出的连接关系可以由一个权值参数矩阵来表示,其中每一个单独的参数值都表示了前后层某两个神经元节点之间的交互。对于全连接网络,任意一对输入与输出神经元之间都产生交互,形成稠密的连接结构。在下图中可以看到,si,i=
2021-12-26 16:19:30
3670
原创 简化的LSTM - 门控循环神经网络GRU
GRU(Gate Recurrent Unit)和LSTM(Long-Short Term Memory)一样,是循环神经网络(Recurrent Neural Network, RNN)的一种。目的为了解决长期记忆和反向传播中的梯度等问题而提出来的。实际上GRU和LSTM的效果差别不大,但是GRU更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。LSTM 和 GRU网络原理如下所示:LSTM 网络原理输入门iti_tit:计算当前计算的新状态以多大的程度更新到记忆
2021-12-23 21:56:53
1548
原创 LSTM长短期记忆网络
RNN可以很好的解决了变长的文本数据和有序的输入序列。可以对文章中从前到后的单词进行顺序编码,将前面有用的信息存储在状态向量,从而拥有一定的记忆能力,可以更好的理解之后的文本。网络结构如下但由于RNN存在梯度消失和爆炸的问题,RNNs不能完美的学习“长期依赖”。LSTM被明确的设计用来解决长期依赖问题,记住有价值的信息,从而减少循环神经网络的学习难度。LSTM在传统RNN的基础上,增加了输入门iti_tit:计算当前计算的新状态以多大的程度更新到记忆单元,结果是向量,取值0-1之间,控制各
2021-12-22 22:49:56
988
原创 循环神经网络及其存在的问题
传统的文本处理任务一般将tfidf向量作为特征输入,这样做存在一个问题就是忽略了文本序列中每个单词的顺序。同时在神经网络例如BP建模过程中通常接受的是一个固定的向量,当输入变长的文本需要先通过滑动窗口的形式转换成一个固定向量,虽然这样可以捕捉一些局部信息,但是两个长距离单词之间的依赖关系难以捕捉到。因此,未解决上述问题,循环神经网络(RNN)诞生,RNN可以很好的解决变长的文本数据和有序的输入序列。可以对文章中从前到后的单词进行顺序编码,将前面有用的信息存储在状态向量,从而拥有一定的记忆能力,可以更好的理
2021-12-19 16:37:36
1724
转载 机器学习常用的优化器汇总
1 梯度下降算法假设模型参数为θ\thetaθ,损失函数为J(θ)J(\theta)J(θ),▽θJ(θ)\triangledown_{\theta}J(\theta)▽θJ(θ)为J(θ)J(\theta)J(θ)关于θ\thetaθ的偏导数,也就是梯度,学习率为α\alphaα,则使用梯度下降法更新参数为:θt+1=θt−α⋅▽θJ(θ)\theta_{t+1} = \theta_{t} - \alpha·\triangledown_{\theta}J(\theta)θt+1=θt−α⋅▽θ
2021-12-16 22:33:56
533
原创 随机梯度下降算法失效及其解决办法
做深度学习时常用到随机梯度下降方法,但是这个方法并不是在任何情况下都是有效的,也存在一些坑,可能是随机梯度下降失效导致模型效果不好。1 随机梯度下降为什么会失效?先介绍下梯度下降算法经典的梯度下降方法的梯度:▽L(θ)=1M∑i=1M▽L(f(xi,θ),yi)\triangledown L(\theta) = \frac{1}{M}\sum_{i=1}^{M} \triangledown L(f(x_i, \theta), y_i)▽L(θ)=M1i=1∑M▽L(f(xi,θ),yi)小
2021-12-14 20:39:07
2513
原创 经典梯度下降、随机梯度下降、批量梯度下降是个啥?
假设某任务损失函数为LLL,模型参数为θ\thetaθ,我们希望找到使损失函数最小的模型参数θ∗=argminL(θ)\theta^* = arg \min L(\theta)θ∗=argminL(θ)经典的梯度下降方法采用平均所有数据的平均损失来近似目标优化函数L(θ)=1M∑i=1ML(f(xi,θ),yi)L(\theta) = \frac{1}{M}\sum_{i=1}^{M}L(f(x_i, \theta), y_i)L(θ)=M1i=1∑ML(f(xi,θ),yi)MMM表示样
2021-12-12 20:29:59
1620
原创 落地成盒 - 神经网络中的梯度消失和梯度爆炸如何解决?
1 什么是梯度消失和梯度爆炸????梯度消失(gradient vanishing)和梯度爆炸(gradient exploding)一般出现在层数比较多的神经网络中。以下面MLP为例,当梯度消失发生时,最后一个隐层梯度更新基本正常,但是越往前的隐层内更新越慢,甚至有可能会出现停滞,此时,多层深度神经网络可能会退化为浅层的神经网络(只有后面几层在学习),因为浅层基本没有学习,对输入仅仅做了一个映射而已。以下图为例,输入xxx,最后一层输出y4y_4y4, 损失函数喂CCC,激活函数为σ\sigma
2021-12-08 21:25:55
1147
原创 【模型调优】常用的参数搜索方法有哪些?
常用的调优方法有:网格搜索、随机搜索、贝叶斯优化方法。参数搜索包含3个要素目标函数搜索范围搜索步长等其他参数1 网格搜索网格搜索通过查找搜索范围内所有的点来确定最优值。如果采用较大的范围和较小的步长,有很大的概率找到全局最优。但是这个方法消耗资源和时间严重,特别是超参数比较多的时候实际应用中,网格搜索一般会使用较大的搜索范围和步长确定最优值可能出现的位置,然后逐渐缩小范围和步长来寻找精确的最优值,但目标是函数一般是非凸的,容易错过最优值2 随机搜索随机搜索不再测试上下界内的所有
2021-12-06 22:29:59
2500
原创 什么是凸函数?逻辑回归凸优化?
????️凸函数?函数L(·)是凸函数,当且仅当对定义域内的任意两点x,yx, yx,y和任意实数λ\lambdaλ总有L(λx+(1−λ)y)≤λL(x)+(1−λ)L(y)L(\lambda x + (1-\lambda)y) \leq \lambda L(x) + (1-\lambda) L(y)L(λx+(1−λ)y)≤λL(x)+(1−λ)L(y)凸函数曲面上任意两点连成的线段,其上任意一点都会在曲线上方二阶导数非负????逻辑回归对应的优化问题就是凸优化。对于二分类,Y∈{−1,1
2021-12-06 09:15:59
478
原创 为什么进行AB测试&如何进行
1 模型离线评估后,为什么要进行ab测试?离线评估无法消除过拟合的影响,因此离线评估结果无法代替线上的评估效果离线评估过程中无法模拟线上的真实环境,例如数据丢失、样本反馈延迟线上的某些商业指标例如收益、留存等无法通过离线计算2 如何进行线上ab测试?进行ab测试的主要手段时对用户进行分桶,即将用户分成实验组和对照组。实验组使用新模型,对照组使用base模型。分桶过程中需要保证样本的独立性和采样的无偏性,确保每个用户只划分到一个桶中,分桶过程中需要保证user id是一个随机数,才能保证数据无偏
2021-12-01 22:03:41
1476
原创 为什么LN?layer normalization的原理及特点
1 BN(batch normalization) 存在的问题BN针对单个神经元进行,利用网络训练时一个 mini-batch 的数据来计算该神经元的均值和方差, 因而称为 Batch Normalization。BN是按照样本数计算归一化统计量的,当样本数很少时,比如说只有4个。这四个样本的均值和方差不能反映全局的统计分布息,所以基于少量样本的BN的效果会变得很差。对于RNN来说,RNN可以展开成一个隐藏层共享参数的MLP,随着时间片的增多,展开后的MLP的层数也在增多,最终层数由输入数据的时间片
2021-11-29 21:34:33
547
原创 为什么BN?batch normalization的原理及特点
1 什么是BN?数据归一化方法,往往用在深度神经网络中激活层之前。其作用可以加快模型训练时的收敛速度,使得模型训练过程更加稳定,避免梯度爆炸或者梯度消失。并且起到一定的正则化作用,几乎代替了Dropout2 原理BN的基本思想其实相当直观:因为深层神经网络在做非线性变换前的激活输入值x随着网络深度加深或者在训练过程中,其分布逐渐发生偏移或者变动,之所以训练收敛慢,一般是整体分布逐渐往非线性函数(激活函数)的取值区间的上下限两端靠近,所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛.
2021-11-28 21:16:44
1197
原创 模型评估时常用的验证方法有哪些?
hold out 检验将原始的样本集合按比例划分成训练集和验证集,例如7:3, 8:2等,缺点:验证集上的评估指标与数据划分有很大的关系,因此为了消除随机性,常采用下面的交叉检验交叉检验k fold交叉验证:将数据集随机划分成k个大小相同的子集,依次偏离这k个子集,每次把当前子集作为验证集,其余作为训练集,最后将k次指标进行平均作为最终结果留1验证:每次留下一个样本作为验证集,其余用于训练,遍历n次,将n次评估结果的均值作为最终评估指标。当样本总数太大的话,需要遍历次数很多,时间开销..
2021-11-25 21:54:18
3912
原创 训练集和测试集划分方法
训练集:用于训练模型的样本集合, 主要用来训练模型参数.测试集:对于训练完成的模型, 通过测试集惊醒评估划分方法有3种1 留出法将数据集按照比例分(8:2,7:3,…)成互不相交的两部分,其中一个是训练集,一个是测试集,尽量保持训练集和测试集分布一致2 交叉验证法将训练集分成k个互斥的子集,k个子集随机分为k-1个一组作为训练集,剩下一个为另一组作为测试集,有k种分法。3 自助法每次随机从数据集(有m个样本)抽取一个样本,然后再放回(也就是说可能被重复抽出),m次后得到有m个样本的数据集,将
2021-11-24 23:38:46
10288
原创 word2vec的两种形式和原理
word2vec是浅层神经网络模型,有两种网络结构,分别为CBOW和skip-gram。CBOW 的目标是根据上线文出现的词语来预测当前词生成的概率,而skip-gram是根据当前词来预测上下文词语的生成概率。两者都可以表示成由输入层、映射层、输出层组成的神经网络。输入层每个词由one-hot编码表示,词汇表中有N个单词,每个词为一个N维向量,单词出现的位置为1,其余位置为0。映射层包含K个节点,映射层取值可以由N维输入向量和输入与映射层间的N * K维的权重计算得到,CBOW中还需要将各个输入向量
2021-11-22 21:24:53
1604
原创 离群点对均方根误差的影响以及解决办法
RMSE经常作为衡量回归问题的评估指标。计算公式为RMSE=∑i=1n(yi−y^i)2nRMSE = \sqrt{\frac{\sum_{i=1}^{n}{(y_i - \hat{y}_i)^2}}{n}}RMSE=n∑i=1n(yi−y^i)2yiy_iyi是第iii个样本的真实值,y^i\hat{y}_iy^i是第iii个样本的预测值,nnn是样本个数。一般情况下,RMSE可以很好的反应回归模型预测值相对真实值的偏离情况,但是当存在偏离程度非常大的离群点时,即使离群点数量非常少
2021-11-21 22:53:19
1118
原创 处理数据时,遇到缺失值与异常值怎么办?
缺失值:是指粗糙数据中由于缺少信息而造成的数据的聚类、分组、删失或截断。它指的是现有数据集中某个或某些属性的值是不完全的。异常值:异常值是指数据集中存在不合理的值,又称离群点。一组测定值中与平均值的偏差超过两倍标准差的测定值,与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值。缺失值处理删除。如果有缺失值的样本占比总样本数量很少的情况下,可以进行删除;或者某列特征缺失值占比很大,且重要程度不大,可以删除整列不做处理。树模型、神经网络、贝叶斯模型对于缺失数据不是非常敏感。因此可以采用这些模型
2021-11-17 21:50:18
4829
原创 如何找到有意义的特征组合?
生产环境中,会面对多种高维特征,简单的进行两两组合,依然会造成参数过多的问题,所以非常有必要找到有意义的一些组合。通过对业务理解寻找有意义的特征。比如,物品有点击,展示,图片,描述等特征,我们是否可以将点击/展示作为新的特征呢?这个可以表示物品的点击率。利用GBDT的叶子节点的输出作为组合特征。对所有可能得组合,一次去除一个特征组合,计算指标,剔除影响小的。通过随机森林等,对组合特征尽性重要程度打分,去除打分低的欢迎关注微信公众号(算法工程师面试那些事儿),本公众号聚焦于算法工
2021-11-16 21:40:42
880
原创 什么是高维组合特征?
为了提高模型对数据复杂关系的拟合能力,在做特征工程时常常对一些特征进行组合,构成高阶特征。以逻辑回归为例,假设数据特征向量为X=(x1,x2,...,xk)X = (x_1, x_2, ..., x_k)X=(x1,x2,...,xk),则有Y=sigmoid(∑i∑jwij<xi,xj>) Y = sigmoid(\sum_{i} \sum_{j} w_{ij} < x_i, x_j >) Y=sigmoid(i∑j∑wij<xi,xj>)其中&l
2021-11-15 21:33:42
2372
原创 机器学习中,有哪些特征选择的工程方法?
特征选择是特征工程中的重要问题(另一个重要的问题是特征提取),坊间常说:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程尤其是特征选择在机器学习中占有相当重要的地位。通常而言,特征选择是指选择获得相应模型和算法最好性能的特征集,工程上常用的方法有以下:计算每一个特征与响应变量的相关性:工程上常用的手段有计算皮尔逊系数和互信息系数,皮尔逊系数只能衡量线性相关性而互信息系数能够很好地度量各种相关性,但是计算相对复杂一些,好在很多toolkit里边都包含了这个工具(如skl
2021-11-14 09:08:27
179
原创 文本特征处理方法
常用的文本表示模型有以下几种:词袋模型和n-gram。袋模型和n-gram。将整个文本以词为单位分开,忽略顺序,然后将每篇文章表示成一个长向量,向量中的每一维代表一个单词,而这个纬度的权重表示了这个单词的重要性(tfidf,词频…)。但是,将文章进行单词级别的划分可能忽略了单词顺序以及共现信息,因此可以将连续出现的n个单词组成的词组作为一个单独的特征放到向量表中构成ngram。另外,一个单词会对应多重词性,但是含义相同,因此会做词干抽取处理。词向量模型。word2vec是一个把词语转化为对应向量
2021-11-10 23:28:27
812
原创 特征处理时类别特征如何处理?
类别型特征????️只在有限选项内取值的特征,例如性别、班级等,通常以字符串的形式进行输入,除了决策树等少数模型能直接处理字符串形式的输入外,其他模型如线性回归、逻辑回归、支持向量机等模型的输入必须是数值型特征才能正确工作。如何处理呢?序号编码,常用于处理特征不同类别间不具有大小关系的数据,例如成绩:优、良、差对应3、2、1one hot处理,处理类别间不具有大小关系的数据(使用稀疏向量来节省空间、配合特征选择降低维度),例如性别:男、女对应10,01二进制编码,给每个类别赋予一个类别id,再将i
2021-11-09 23:09:30
1159
原创 为什么对数值类型的特征归一化?
特征归一化主要是为了消除量纲的影响,以房价预测为例,卧室面积城镇人口数量都会对房价有影响,在进行距离有关的计算时,单位的不同会导致计算结果的不同,尺度大的特征会起决定性作用,而尺度小的特征其作用可能会被忽略,所以,为了消除特征间单位和尺度差异的影响,以对每维特征同等看待,需要对特征进行归一化。对数值特征进行归一化,可以将不同的特征统一到大致相同的范围内,常用归一化方法有:线性归一化根据最大值、最小值对原始数据进行先行变换,讲结果映射到[0, 1]x∗=x−xminx−xmaxx^* = \fra
2021-11-08 22:30:13
603
原创 为什么要连续特征离散化处理?
在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:离散特征的增加和减少都很容易,易于模型的快速迭代;(理解的是特征可以直接通过id检索embedding,与其他特征拼接输入模型,模型结构不需要改变)稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;(稀疏向量,大部分元素为0)离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模
2021-11-07 18:34:24
380
原创 auc如何计算 ?附python 代码
auc 可以理解为:随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。1 三种求解方法方法 1在有MMM个正样,NNN个负样本的数据集里。一共有M∗NM*NM∗N对样本(一对样本即,一个正样本与一个负样本)。统计这M*N对样本里,正样本的预测概率大于负样本的预测概率的个数。∑I(Predpos,Predneg)M∗N\frac{\sum {I(Pred_{pos}, Pred_{neg})}}{M * N}M∗N∑I(
2021-11-03 23:15:24
1253
原创 小问题 - auc特点以及放缩是否有影响
AUC(Area under Curve)指的是ROC曲线下的面积,介于0和1之间。AUC作为数值可以直观地评价分类器的好坏,值越大越好。统计意义是从所有正样本随机抽取一个正样本,从所有负样本随机抽取一个负样本,当前score使得正样本排在负样本前面的概率。放缩结果不回影响样本间的排序,所以对AUC没有影响欢迎关注微信公众号(算法工程师面试那些事儿),本公众号聚焦于算法工程师面试,期待和大家一起刷leecode,刷机器学习、深度学习面试题等,共勉~...
2021-11-02 21:41:06
389
tensorflow-DeepFM-master.zip
2019-03-22
LDA主题模型.zip
2019-01-05
推荐相关.zip
2018-10-28
精益数据分析1.pdf
2018-10-14
集体智慧编程.pdf
2018-10-14
推荐系统实践.pdf
2018-10-10
受限玻尔兹曼机笔记.pdf
2018-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人