机器学习
文章平均质量分 82
肯德基套餐
这个作者很懒,什么都没留下…
展开
-
深入理解XGBoost
目标函数的基本形式模型对于某个样本的预测值:fkf_{k}fk是基学习器,最终模型是多个基学习器最初的目标函数可以写成y^i(t−1)\hat{y}_{i}^{(t-1)}y^i(t−1):是前t-1个集成学习器对样本的预测值ft(xi)f_{t}\left(\mathbf{x}_{i}\right)ft(xi):是当前学习器对样本的预测值Ω(ft)\Omega\left(f_{t}\right)Ω(ft):是第t个学习器的正则项对目标函数进行泰勒二阶展开gi=∂y^(t.原创 2020-08-09 23:25:46 · 1024 阅读 · 0 评论 -
深入理解GBDT
基本概念概述Gradient Boosting Decision Tree,梯度提升决策树。GBDT是一个Boosting算法 , Boosting算法将弱分类器集成成一个强分类器,相比于bagging:boosting算法中当前的分类器会受到之前的学习器的影响,比如adaboost当前学习器中样本的权重是前n轮学习器改变后的结果,比如GBDT中当前学习器要拟合东西是前n个学习器产生的残差。而bagging算法中每一个学习器都是相对独立的,不会受到其他学习器的影响。GBDT 相当于 Grad原创 2020-08-09 23:05:25 · 880 阅读 · 2 评论 -
逻辑回归——你想知道的全在这里
概述逻辑回归是一个假设样本服从伯努利分布,利用极大似然估计和梯度下降求解的二分类模型,在分类、CTR预估领域有着广泛的应用。公式推导逻辑回归是用来解决分类问题用的,与线性回归不同的是,逻辑回归输出的不是具体的值,而是一个概率。除去了sigmoid函数的逻辑归回和线性回归几乎是一样的。有人说逻辑回归不是回归,因为输出的不是回归值。也可理解为逻辑回归是先求回归函数,再将结果通过逻辑函数转化一下得到最终的结果。基本步骤:构造hypothesis构造损失函数通过损失函数最小化求目标函数的各个参数原创 2020-08-09 22:27:53 · 442 阅读 · 0 评论 -
SVD(Singular Value Decomposition)奇异值分解
谱分解线性代数中,特征分解(Eigendecomposition),又称谱分解(Spectral decomposition)是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。谱定理如果矩阵M是个正规矩阵,那么M可以进行如下分解:A=UΛUH\mathbf{A}=\mathbf{U} \mathbf{\Lambda} \mathbf{U}^{\mathrm{H}}A=UΛUH其中U...原创 2020-04-20 21:22:16 · 532 阅读 · 0 评论 -
矩阵分解模型中的相关概念
单位向量模为1的向量,向量的模为向量各个位置元素平方和的正方根正交向量点积为0的两个向量转置矩阵转置矩阵即将原矩阵按照对角线进行反转,[123456]\left[\begin{array}{ll}1 & 2 \\3 & 4 \\5 & 6\end{array}\right]⎣⎡135246⎦⎤变为[135246]\left[\begin{ar...原创 2020-04-20 17:51:20 · 418 阅读 · 0 评论 -
随机森林有放回抽样
为什么要有放回抽样如果不放回抽样,每棵树用的样本完全不同,结果是有偏的,基学习器之间的相似性小,投票结果差,模型偏差大如果不抽样,基学习器用所有样本,那么模型的泛化能力弱,基学习器之前相似性太大差异性太小,模型的偏差大为什么不随机抽样? 自助采样首先可以产生一部分袋外样本,可以用来做袋外估计,另一方自助采样一定程度上改变了每个基学习器的所用数据的样本分布,一定程度上引入了噪音,增加了模型的...原创 2019-10-28 23:07:35 · 3242 阅读 · 1 评论 -
交叉验证的作用
1. 可以使用所有的数据一般模型训练都要把数据分成训练集和验证集合,这就导致训练数据比原始的数据要少,并且验证集也无法是所有的原始数据。如果使用交叉验证,所有数据都可以用作训练(但不是同一个模型),所有数据也都可以用作验证集。2. 评估模型的稳定性及调参比如5折交叉验证,在参数确定了的情况下,我们可以将数据弄成五份,每一份中80%训练,20%作为测试集,这样可以训练五个模型,这五个模型除了...原创 2019-07-27 16:22:23 · 11534 阅读 · 1 评论 -
过拟合问题
发现过拟合过拟合的原因训练集和真实数据的分布不相同样本中噪音过大,使得模型学到噪音的特征模型太复杂减缓过拟合模型方面:简化模型比如调整树模型的深度,神经网络的中的参数选择适当的模型LR通常比提升树模型更不容易过拟合模型融合多个模型融合的结果会被单个模型的结果误差小正则项L1,L2正则对模型中的参数进行惩罚,迫使模型不会变得那么复杂early stopping...原创 2019-07-24 22:25:39 · 453 阅读 · 0 评论 -
模型的方差与偏差
泛化误差可以分为三个部分,偏差(bias), 方差(variance) 和噪声(noise)。其中可控的是偏差(bias), 方差(variance)。偏差: Bias,指的是模型预测值偏离真实值的程度;方差: Variance,值模型预测值的离散程度,比如两条几乎相同的样本,但是预测值可能差很多;Bias 和Variance 的关系如下图所示,模型可以预测的不准但是方差很小,比如第三个圆...原创 2019-07-24 22:25:21 · 5910 阅读 · 0 评论 -
线性回归模型损失函数为什么是均方差
为什么是均方差直观上看,均方差是表达的是欧几里得距离,表示的是预测点到原来点的距离,这个距离越小越好。然而,将均方差作为损失函数是通过推导得到的。首先,线性回归属于普通线性模型,而普通线性回归中的误差项满足下面四个假设:零均值假设:误差项是期望为零的随机变量,即E(e)=0E(e)=0E(e)=0不变方差假设:误差项e的方差(用σ2σ^{2}σ2表示)是常数且与 x1,x2,…. 的值...原创 2019-07-24 22:24:35 · 4994 阅读 · 1 评论 -
如何跳出局部最优
初始参数随机,用不同的初始参数进行多组实验找出最优的一组解,这相当于从不同的位置进行搜索带动量的梯度下降,可能会越过最低点随机梯度下降,加入随机因素,每次取一个样本计算梯度,因为单点的最优方向可能不是全局的最优方向,表现在图像上就是在寻找全局最优的路上饶了很多弯路才到达最优点。使用模拟退火算法,每次以一定的概率允许移动到比当前解差的点,可以跳过局部最优...原创 2019-07-24 22:24:27 · 6628 阅读 · 1 评论 -
为什么数据需要归一化
归一化是缩放单个样本以具有单位范数的过程, 把数据变成(0,1)之间的小数,把有量纲的表达式变成无量纲的表达式,(成为了一个相对值),常用的方法为:x′=x−min(x)max(x)−min(x)x^{\prime}=\frac{x-\min (x)}{\max (x)-\min (x)}x′=max(x)−min(x)x−min(x)这里要注意的是,归一化的缩放可按比例也可以不按...原创 2019-07-24 22:24:19 · 1448 阅读 · 0 评论 -
线性回归为什么不适合做分类
线性回归不适合做分类主要有下面两个原因:线性回归的预测值是连续值得形式,不是概率的形式对数据分布比较敏感假设有如下的数据,age小于20的样本label为1,age>20的样本label为0理想情况下,应该有个z字型的函数去拟合这些样本,产生的效果是最好的,如下:输出的形式不符合对于一元函数,线性回归线应该是一条直线,所以无法以Z字型的姿态去拟合,并且要使均方差最小,只能...原创 2019-08-30 15:08:33 · 6173 阅读 · 0 评论 -
协方差与协方差矩阵
均值:X‾=∑i=1nXin\overline{X}=\frac{\sum_{i=1}^{n} X_{i}}{n}X=n∑i=1nXi标准差:s=∑i=1n(Xi−X‾)2n−1s=\sqrt{\frac{\sum_{i=1}^{n}\left(X_{i}-\overline{X}\right)^{2}}{n-1}}s=n−1∑i=1n(Xi−X)2方差:s2=∑i...原创 2019-08-11 10:24:47 · 940 阅读 · 0 评论 -
利用梯度下降法和牛顿法求开方
假如现在要求的是根号2即 x2=2x^2 = 2x2=2的解使用梯度下降法梯度下降主要通过求梯度为0的点,得到凸函数的全局最小值。首先构建损失函数为凸函数的目标函数, 使得目标函数的最小值对应的是我们要求的值由 x2=2x^2 = 2x2=2我们可以构建一个损失函数L=(x2−2)2L = (x^2 - 2) ^2L=(x2−2)2这里为什么不直接用x2−2x^2 - 2x2−...原创 2019-08-10 17:41:19 · 2636 阅读 · 0 评论 -
AdaBoost回归
回归过程上面说的是adaboost做分类的过程,如果是做回归呢分类的过程,如何计算当前模型的权重即误差率,如何更新样本权重。样本的权重是根据当前分类器的误差率来计算的,当前模型的误差率通过如下方法来计算:1. 计算训练集上的最大误差Ek=max∣yi−Gk(xi)∣i=1,2…mE_{k}=\max \left|y_{i}-G_{k}\left(x_{i}\right)\right|...原创 2019-07-27 16:37:46 · 3251 阅读 · 10 评论 -
AdaBoost分类过程
1.初始化样本权重,初始值为1/ND1=(w11,w12⋯w1i⋯ ,w1N),w1i=1N,i=1,2,⋯ ,ND_{1}=\left(w_{11}, w_{12} \cdots w_{1 i} \cdots, w_{1 N}\right), w_{1 i}=\frac{1}{N}, i=1,2, \cdots, ND1=(w11...原创 2019-07-24 22:25:27 · 767 阅读 · 2 评论 -
Failure Diagnosis Using Decision Trees
paper link: https://ieeexplore.ieee.org/abstract/document/1301345Main ideaTrain decision trees on the request traces from time periods in which user-visible failures are present. Paths through the t...原创 2019-04-22 14:16:57 · 297 阅读 · 0 评论 -
AttributeError: module 'xgboost' has no attribute 'XGBClassifier'
出现这种问题八成是自定义的文件里有个名叫xgboost的文件 TT原创 2019-05-05 19:32:37 · 6780 阅读 · 12 评论 -
从KKT条件下的拉格朗日乘法到拉格朗日对偶问题
(一)拉格朗日乘法(Lagrange multiplier)拉格朗日乘法是最优化问题中,当多元函数的变量受到一个或多个等式约束时,求局部极值的方法。通过将由n个变量和k个约束条件的最优化问题,转化成一个解有 n+k 个变量的方程组的解的问题。1.1带有单个等式的约束对于一个2变量1等式约束的优化问题:minx,yf(x,y) s.t. g(x,y)=c \min _...原创 2019-03-08 22:57:05 · 7224 阅读 · 9 评论 -
LightGBM: A Highly Efficient Gradient Boosting Decision Tree 论文解析
本文记录了LGB论文中一些技术点,主要由翻译和个人理解组成,省略了一些无关痛痒的原文内容。梯度提升树(GBDT)是非常流行的机器学习模型,并且在工业上已经有了实现比如XGBoost和pGBRT,在这些工业实现中虽然采取了一些优化算法,但是当数据量太大或者特征维度过高时,这些算法的效率和可扩展性就会变得不那么令人满意。其原因主要是:在GBDT的核心算法中,最佳分裂点的选择需要遍历所有feture ...原创 2019-03-01 19:50:39 · 1662 阅读 · 0 评论 -
回归树学习小记 RegressionTree
不管是分类树还是回归树,首先要明确的是,他们使用的特征即可是连续的也可以是离散的,label 是连续值还是类别决定了决策树是分类树还是回归树。下面是李航的统计学习方法中给出的CART回归树的算法。其中最关键的就是过程(1)首先选择切分变量j,切分变量就是对应的特征,而切分点就是对应切分变量的某个值。对于离散变量,可能为:是xx,不是xx;对于连续特征,可能为 >xx,<= x...原创 2019-02-22 15:46:24 · 1027 阅读 · 0 评论 -
K-means++ 中选择初始聚类中心
K-means++算法是K-means算法的改进,与原算法不通的地方仅在于初始化K个聚类中心上,算法的主要思想如下。这里主要详细的介绍下Step2中的新的聚类中心选择算法。假设有如下8样本:Step1:首先随机选择第一个聚类中心,假设我们选到了6号。Step2:我们计算剩下的点到6号点的距离,如下,P其中P(x)=D(x)2sum(D(x)2)P(x) = \frac{D(x)^{2...原创 2019-01-21 15:12:07 · 10071 阅读 · 0 评论 -
梯度下降法的原理与实现
概念介绍梯度下降法目的是为了“下降”,下降的方法是按照“梯度”。比如你在一座山上,当前你只能迈出一步,如何走才能使你的高度下降的最多呢,根据梯度的理论,我们沿着当前梯度的反方向走,会让我们的下降幅度最大。上述例子中,山就是一个函数,在山上的你就是函数中待优化的变量,人的坐标表示变量初始值,我们要 求的是函数最小值即到达山底,人该如何走即如何迭代变量。所以我们只要沿着函数梯度的反方向,就能最快的...原创 2019-01-07 21:20:32 · 17321 阅读 · 4 评论 -
xgboost使用cross validation
简要的说明下交叉验证的作用:防止过拟合。他虽然不能在质的级别上提高我们模型效果,但是能够防止我们的模型过拟合,比如xgboost里面,过拟合的一个表现就是生成的树太多,假如们设置了xgboost 的early_stopping_rounds参数,那么树会一直生成直到验证集上auc(假设这里的评估标准是auc)不再上升为止,这样的话如果验证集划分的不准确,就会导致验证集上的auc不准,那么生成的...原创 2019-01-11 10:41:27 · 12784 阅读 · 7 评论 -
LOOCV - Leave-One-Out-Cross-Validation 留一交叉验证
什么是留一交叉验证正常训练都会划分训练集和验证集,训练集用来训练模型,而验证集用来评估模型的泛化能力。留一交叉验证是一个极端的例子,如果数据集D的大小为N,那么用N-1条数据进行训练,用剩下的一条数据作为验证,用一条数据作为验证的坏处就是可能EvalE_{val}Eval和EoutE_{out}Eout相差很大,所以在留一交叉验证里,每次从D中取一组作为验证集,直到所有样本都作过验证集,共计...原创 2018-12-10 10:10:33 · 49473 阅读 · 12 评论 -
app2vec在广告投放中的应用
本文参考了important_MODELING USERS FOR ONLINE ADVERTISING,主要介绍word2vec的改进版本app2vec在广告投放系统中的应用。一、word2vec原理部分不再叙述,下面先回顾一下word2vec在求word embedding的过程,以CBOW为例加入我们现在有一段文本{I drink coffee everyday},一共包含五个四个单词...原创 2018-10-06 20:55:37 · 2984 阅读 · 3 评论 -
what is Machine Learning
What is machine learning?machine learning : experience—->skillThe skill is something which can improve the performance of programWhy use machine learningFor example,how to recognize a tre...原创 2018-08-15 20:11:47 · 729 阅读 · 0 评论 -
GRU(Gated recurrent unit)
GRU(Gated recurrent unit)GRU是LSTM的简化版本,是LSTM的变体,它去除掉了细胞状态,使用隐藏状态来进行信息的传递。它只包含两个门:更新门和重置门结构说明GRU计算公式:结合计算公式和上图,公式(1)2)分别是更新门个重置门,更新门的作用类似于 LSTM 中的遗忘门和输入门,它决定了要忘记哪些信息以及哪些新信息需要被添加,体现在公式(4)中。重置门用于决定...原创 2019-06-13 00:09:13 · 7356 阅读 · 0 评论 -
HAN(Hierarchical Attention Networks for Document Classification)
https://www.cs.cmu.edu/~./hovy/papers/16HLT-hierarchical-attention-networks.pdf1.介绍这篇文章是2016年NAACL上的文章。主要提出了一个层级注意力网络来对文档进行分类。这个模型有两个特点:(1)网络的层级结构能够体现文档的层级结构(2)有两个层次的注意力分别应用到词级和句级,对文档进行更好的表达。这种构...原创 2019-06-13 00:22:37 · 1359 阅读 · 0 评论 -
L1正则产生的特征稀疏性
正则方法:LASSO: L1正则Ridge: L2正则蓝色区域表示正则项, 区域表示范围,一般都是限制正则项在不超过t的范围下求最小化残差的平方和。图中椭圆曲线为残差的等高线,那么切点出为满足正则项不超过t的残差最小值。可以看到L1正则使得切点落在坐标轴上,也就意味着β1\beta_{1}β1或者β2\beta_{2}β2至少有一个为0,从而差生稀疏性。而L2正则的切点很难恰好落...原创 2019-07-24 22:25:51 · 312 阅读 · 0 评论 -
L1不可导怎么办—坐标下降算法
本文为学习 https://blog.csdn.net/u013802188/article/details/40476989/ 的笔记带L1正则的损失函数,在求梯度时可能遇到不可求导的点,即非光滑的点,这时可以使用非梯度优化的方法比如坐标下降法。坐标下降法属于一种非梯度优化的方法,它在每步迭代中沿一个坐标的方向进行线性搜索(线性搜索是不需要求导数的),通过循环使用不同的坐标方法来达到目标函...原创 2019-07-24 22:25:34 · 2577 阅读 · 0 评论 -
查准率(Precision)和查全率(Recall)和 P-R曲线、ROC曲线
数据发生倾斜时,准确率判断模型好坏就不那么准确了。比如风控模型中,99个正常用户和1个欺诈用户,用一个把所有用户都识别成正常用户的模型进行预测,那么该模型的准确率为99%,然而并没有什么用。所以要用另一个参数来衡量模型的好坏。查准率(Precision)和查全率(Recall)四类预测将模型预测结果分为下面四类:正确肯定(True Positive,TP):预测为真,实际为真正确否定(...原创 2019-08-10 01:27:39 · 16717 阅读 · 0 评论 -
PrefixSpan算法
术语定义items : 项,I={i1,i2,…,in}I=\left\{i_{1}, i_{2}, \ldots, i_{n}\right\}I={i1,i2,…,in}itemset: 项集, 一些项的组合sequence :有序的项集的集合,⟨s1s2⋅⋅sl⟩\left\langle s_{1} s_{2} \cdot \cdot s_{l}\right\rangle⟨s1s...原创 2019-06-23 21:30:52 · 390 阅读 · 0 评论 -
XGBoost 查看 feature importace
官方文档 https://xgboost.readthedocs.io/en/latest/python/python_api.htmlweight: 分裂时特征作为分裂点的次数gain: 以该特征分裂的平均信息增益(平均值)cover: 以该特征下的叶子节点的个数(平均值)total_gain:gain的和total_cover : cover的和代码中通过xgb.plot_...原创 2019-06-26 15:36:29 · 1353 阅读 · 0 评论 -
FreeSpan算法
paper: https://www.researchgate.net/publication/221654035_FreeSpan_Frequent_pattern-projected_sequential_pattern_miningFreeSpan: Frequent pattern projected sequential pattern mining基于频繁模式投影的序列模式挖掘F...原创 2019-06-22 23:02:28 · 2183 阅读 · 0 评论 -
Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
这篇文章讲述了如何利用LSTM+attention机制对文本进行分类整篇论文可以用这张图表表示:Input Layer: 输出层,原始数据Embedding Layer: embedding 层,将原始数据中的单词编码为vectorLSTM Layer: 双向编码,输出每一时刻单词的隐状态Attention Layer: 对LSTM Layer层每一时刻的输出进行attention,加...原创 2019-06-21 22:34:09 · 890 阅读 · 0 评论 -
BGD、SGD以及MBGD
三种梯度下降的方法用于更新参数,也就是当前参数等于上一时刻参数减去学习率乘以梯度。θj:=θj−α∂∂θjJ(θ)\theta_{j} :=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J(\theta)θj:=θj−α∂θj∂J(θ)三种方法的不同体现在计算∂∂θjJ(θ)\frac{\partial}{\parti...原创 2019-06-25 08:11:47 · 7651 阅读 · 0 评论 -
FPTree 建树及挖掘
https://www.cnblogs.com/pinard/p/6307064.html结构项头表和FP Tree:项头表存储的是所有的1频繁项集,并且按照支持度递减, pointer是一个链表,串着元素相同的1频繁项集。项头表与数据预排序将所有的频繁1项集按照支持度排序,删除低于阈值的1项集,并将这些1项集放入项头表。将每条数据中的元素按照其单个支持度排序,大的元素放在前。建树...原创 2019-06-19 21:07:44 · 1316 阅读 · 0 评论 -
Apriori算法
尊重原创:https://www.cnblogs.com/pinard/p/6293298.html作用适用于在大数量的项集中发现关联共现的项。在啤酒与尿布中,项集表示很多消费者的购物单,项就是啤酒、尿布单个商品等,这个例子因为发现了啤酒与尿布之前的关系而闻名。从样本数据中找出支持度高的项集(频繁项集)。评估标准支持度: 同时发生A和B的样本数占总样本数的比例置信度:同时发生A和B...原创 2019-06-19 17:11:50 · 233 阅读 · 0 评论