损失函数

GBDT回归树过程详解

百般思念 提交于 2020-04-06 09:53:18
GBDT回归树过程详解 转载 简单点1024 最后发布于2018-04-11 22:56:46 阅读数 10281 收藏 展开 综述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。   GBDT中的树是回归树(不是分类树),GBDT用来做回归预测,调整后也可以用于分类。   GBDT的思想使其具有天然优势可以发现多种有区分性的特征以及特征组合。业界中,Facebook使用其来自动发现有效的特征、特征组合,来作为LR模型中的特征,以提高 CTR预估(Click-Through Rate Prediction)的准确性(详见参考文献5、6);GBDT在淘宝的搜索及预测业务上也发挥了重要作用(详见参考文献7)。 一、Regression Decision Tree:回归树 回归树总体流程类似于分类树,区别在于,回归树的每一个节点都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分枝时穷举每一个feature的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化平方误差。也就是被预测出错的人数越多

随机森林

落爺英雄遲暮 提交于 2020-04-06 09:37:51
0. 前言 sklearn提供了sklearn.ensemble库,其中包括随机森林模型(分类)。但之前使用这个模型的时候,要么使用默认参数,要么将调参的工作丢给调参算法(grid search等)。今天想来深究一下到底是如何选择参数,如何进行调参。 学会调参是进行集成学习工作的前提。参数可分为两种,一种是影响模型在训练集上的准确度或影响防止过拟合能力的参数;另一种不影响这两者的其他参数。模型的准确度由其在训练集上的准确度及其防止过拟合的能力所共同决定,所以在调参时,我们主要对第一种参数进行调整,最终达到的效果是:模型在训练集上的准确度和防止过拟合能力的平衡。 1. 集成学习是什么 集成学习通过构建并结合多个学习器来完成学习任务。 集成学习的一般结构:先产生一组“个体学习器”(individual learner),然后再用某种策略将它们结合起来。个体学习器通常有一个现有的学习算法从训练数据产生,此时集成中只包含同种类型的个体学习器,比如“决策树集成”,此时的集合里全部都是决策树。同质集成中的个体学习器称为 “基学习器” (base learner),相应的学习算法成为“基学习算法”(base learning algorithm)。 因为集成学习通过对多个“弱学习器”进行结合,可以获得比单一学习器更加显著的泛化性能,所以集成学习的很多理论研究是针对弱学习器的。因此“基学习器

python大战机器学习——模型评估、选择与验证

删除回忆录丶 提交于 2020-03-22 02:05:32
python大战机器学习——模型评估、选择与验证 1、损失函数和风险函数 (1)损失函数:常见的有 0-1损失函数 绝对损失函数 平方损失函数 对数损失函数 (2)风险函数:损失函数的期望 经验风险:模型在数据集T上的平均损失   根据大数定律,当N趋向于∞时,经验风险趋向于风险函数 2、模型评估方法 (1)训练误差与测试误差   训练误差:关于训练集的平均损失   测试误差:定义模型关于测试集的平均损失。其反映了学习方法对未知测试数据集的预测能力 (2)泛化误差:学到的模型对未知数据的预测能力。其越小,该模型越有效。泛化误差定义为所学习模型的期望风险 (3)过拟合:对已知数据预测得很好,对未知数据预测得很差的现象。原因是将训练样本本身的一些特点当做了所有潜在样本都具有的一般性质,这会造成泛化能力的下降。常用的防止过拟合的办法为正则化。正则化是基于结构化风险最小化策略的实现。 3、模型评估 (1)留出法:直接将数据划分为三个互斥的部分,然后在训练集上训练模型,在验证集上选择模型,最后用测试集上的误差作为泛化误差的估计。 (2)交叉验证法(S折交叉验证法):数据随机划分为S个互不相交且大小相同的子集,利用S-1个子集数据训练模型,利用余下的一个子集测试模型。对S种组合依次重复进行,获取测试误差的均值。 (3)留一法:留出一个样例作为测试集。其缺点就是当数据集比较大时计算量太大 (4

4.机器学习之逻辑回归算法

时光总嘲笑我的痴心妄想 提交于 2020-03-21 18:05:57
理论上讲线性回归模型既可以用于回归,也可以用于分类。解决回归问题,可以用于连续目标值的预测。但是针对分类问题,该方法则有点不适应,因为线性回归的输出值是不确定范围的,无法很好的一一对应到我们的若干分类中。即便是一个二分类,线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了。为了更好的实现分类,逻辑回归诞生了。逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性。 逻辑回归是假设数据服从Bernoulli分布的,因此LR也属于参数模型,他的目的也是寻找到最优参数。 logistic回归是一种广义线性回归(generalized linear model)。 【补充】在统计学中,参数模型通常假设总体(随机变量)服从某一个分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。 首先回顾一下简单线性回归(只考虑一个输入变量,一个输出变量的线性回归)。 表示输入变量(自变量),第一部分例子中的X。 表示输出变量(因变量),第一部分例子中的Y。一对 表示一组训练样本。m个训练样本

Deep learning:一(基础知识_1)

别说谁变了你拦得住时间么 提交于 2020-03-21 16:44:19
  不多说,直接上干货! 前言:   最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程 UFLDL Tutorial ,据说这个教程写得浅显易懂,也不太长。不过在这这之前还是复习下machine learning的基础知识,见网页: http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=DeepLearning 。内容其实很短,每小节就那么几分钟,且讲得非常棒。 教程中的一些术语:     Model representation: 其实就是指学习到的函数的表达形式,可以用矩阵表示。     Vectorized implementation: 指定是函数表达式的矢量实现。     Feature scaling: 指是将特征的每一维都进行一个尺度变化,比如说都让其均值为0等。    Normal equations: 这里指的是多元线性回归中参数解的矩阵形式,这个解方程称为normal equations.     Optimization objective: 指的是需要优化的目标函数,比如说logistic中loss function表达式的公式推导。或者多元线性回归中带有规则性的目标函数。    Gradient Descent、Newton

深度学习 损失函数

僤鯓⒐⒋嵵緔 提交于 2020-03-09 16:36:49
分类问题和回归问题是监督学习的两大类。 分类问题常用的损失函数为交叉熵函数(cross entropy) tensorflow实现过程: # y为正确结果,y_pred为预测结果 loss = -tf.reduce_mean(y*tf.log(tf.clip_by_value(y_pred, 1e-10, 1.0))) 回归问题常用的损失函数为均方误差(MSE,mean squared error) # y为正确结果,y_pred为预测结果 loss = tf.reduce_mean(tf.square(y-y)) 来源: CSDN 作者: 雪易 链接: https://blog.csdn.net/qq_40041064/article/details/104752719

VDSR论文笔记

北城以北 提交于 2020-03-05 21:48:51
VDSR论文笔记 VDSR将VGG网络模型用于图像超分辨率(Super Resolution, SR)问题中,大幅提高了网络深度,使得特征提取更加充分,同时在训练的过程中利用残差学习,大幅调高了学习率,是的训练时间明显缩短。 网络结构 与SRCNN相同,VDSR首先将输入LR图像放大至目标分辨率,再使用VGG网络在高分辨率条件下提取特征,最终重建得到高分辨率图像。 损失函数 使用MSE损失函数,但由于是残差学习,所以损失函数的形式稍有变化。 测试结果 来源: CSDN 作者: 呵呵Scorch 链接: https://blog.csdn.net/Scorch111/article/details/104680161

Focal Loss

╄→гoц情女王★ 提交于 2020-03-04 05:26:07
损失函数(loss function)是用来 估量模型的预测值f(x)与真实值Y的不一致程度 ,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是 经验风险函数 的核心部分,也是 结构风险函数 重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:   其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的 Φ 是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或者其他的正则函数。整个式子表示的意思是 找到使目标函数最小时的 θ 值 。下面主要列出几种常见的损失函数。   理解:损失函数旨在表示出logit和label的差异程度,不同的损失函数有不同的表示意义,也就是在最小化损失函数过程中,logit逼近label的方式不同,得到的结果可能也不同。 一般情况下,softmax和sigmoid使用交叉熵损失(logloss),hingeloss是SVM推导出的,hingeloss的输入使用原始logit即可。 一、LogLoss对数损失函数(逻辑回归,交叉熵损失)   有些人可能觉得逻辑回归的损失函数就是平方损失,其实并不是。 平方损失函数可以通过线性回归在假设样本是高斯分布的条件下推导得到 ,而逻辑回归得到的并不是平方损失

GDBT回归

五迷三道 提交于 2020-03-04 02:25:15
1.概述 GBDT基于GB算法。GB算法的主要思想是,每次建立模型是在之前建立模型损失函数的梯度下降方向。损失函数是评价模型性能(一般为拟合程度+正则项),认为损失函数越小,性能越好。而让损失函数持续下降,就能使得模型不断调整提升性能,其最好的方法就是使损失函数沿着梯度方向下降。GBDT再此基础上,基于负梯度(当损失函数为均方误差的时候,可以看作是残差)做学习。 2.原理 类似于随机森林回归,随机森林使用的bagging,gdbt使用的是boosting方式, 通过不断迭代真实值与预测值的残差来产生新的回归树, 公式: vm表示权重,这里是固定超参数,预测时只要做反运算即可,公式: 过程: (1).对于样本{X,Y},首先生成截距b(可以是Y均值),对所有样本Y0=Y-b (2).以Y0为预测值生成回归树t0,Y1 = Y0 - learningRate*tree0.predict(X),以Y1为预测值生成下一棵树,得出以下迭代公式: Yi+1 = Yi - learningRate*treei.predict(X) (3).重复步骤二,直至树的数目足够多为止 来源: https://www.cnblogs.com/yangyang12138/p/12406165.html

Huber Loss

我怕爱的太早我们不能终老 提交于 2020-03-03 17:31:33
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Huber Loss Huber Loss 是一个用于回归问题的带参损失函数, 优点是能增强平方误差损失函数(MSE, mean square error)对离群点的鲁棒性。 当预测偏差小于 δ 时,它采用平方误差, 当预测偏差大于 δ 时,采用的线性误差。 相比于最小二乘的线性回归,Huber Loss降低了对离群点的惩罚程度,所以 Huber Loss 是一种常用的鲁棒的回归损失函数。 Huber Loss 定义如下: 来源: CSDN 作者: zimiao552147572 链接: https://blog.csdn.net/zimiao552147572/article/details/104631253