分类问题——逻辑回归与XGBoost

逻辑回归

初学逻辑回归的时候就只是简单地认为sigmoid函数可以把线性函数映射到(0,1)的区间上,因此选用了sigmoid模型作为逻辑回归的模型函数。

其实是学的太简单了,直到面试的时候被问到这个问题,才想到需要来把坑填一下。

  • 事实上可以把线性函数映射到(0,1)上的函数有无穷多个,而逻辑回归使用sigmoid函数并不是随便选的,而是通过理论推导得到的。

这里挂上我觉得解释得最清楚的文章:https://www.cnblogs.com/wallacup/p/6024855.html?utm_source=itdadao&utm_medium=referral

下面是我个人的理解和总结:

这里以二项逻辑回归为例子,即分类只有两种(y),记为0和1。

在这个分类问题上,我们知道y的先验分布实际上是一个伯努利分布(有可能y=1且概率为p,或者有可能y=0且概率为1-p)。即:

y|p \sim Bernouli(p)

P(y|p) = p^{y}(1-p)^{1-y}

推导得到:

P(y|p) = exp(y*ln\frac{p}{1-p}+ln(1-p))

这符合指数分布族的标准形式:

P(y|\eta ) = b(y)exp(\eta ^{T}T(y)-a(\eta ))

 其中,η是分布的自然参数(natural parameter)或典范参数(canonical parameter),T(y)叫做充分统计量(sufficient statistic)。

\eta = ln(\frac{p}{1-p})

T(y) = y

a(\eta ) = -ln(1-\eta )

通常情况下T(y)=y;a(η)是对数分配函数(log partition function),而a、b与T一般都是给定的,随着η的变化,会得到不同的分布

引进广义线性模型(GLM)的概念:

广义线性模型:

应用到上面的逻辑回归中:

(1) 由上述内容已知:  y|p \sim Bernouli(p) \Rightarrow y|p \sim ExponentialFamily(\eta )

\eta = ln(\frac{p}{1-p}) \Rightarrow p = \frac{1}{1+e^{-\eta }}

(2) h(x) = E[y|x] = p = \frac{1}{1+e^{-\eta }}

(3) h(x) = \frac{1}{1+e^{-\eta }} = \frac{1}{1+e^{-w^{T}x}}

其中,w就是广义线性模型中的线性模型系数θ

由此,E[y|x] = p = \frac{1}{1+e^{-w^{T}x}}

得到逻辑回归模型: y = \frac{1}{1+e^{-w^{T}x}}

  • 推导出分类问题——逻辑回归的模型之后,如何评估这个模型

我们就得想想怎么基于样本,得到最理想的模型。一般的流程是我们需要找到一个评估模型的指标,再设法优化这个指标,来得到最好的模型参数。

在回归问题中,我们通常使用损失函数来评估,不断缩小残差方

在分类问题中,对于逻辑回归,可以使用最大似然函数来评估。

最大似然函数的意思,就是最大程度上的相似。长这个样子:

\prod [\pi(x_{i})]^{y_{i}}[1-\pi(x_{i})]^{1-y_{i}}

其中,P(Y=1|x_{i}) = \pi (x_{i}) 指的是我们想要拟合的这个模型,当输入xi的时候,输出的Y=1的概率。

相应地,P(Y=0|x_{i}) = 1- P(Y=1|x_{i}) = 1-\pi (x_{i}), \pi (x)其实就是这个逻辑回归的模型。

指数上的yi则指的是样本的y。

举个栗子: 如果你有一组训练样本(xi,yi),得到了一个训练模型\pi (x)

如果训练模型告诉你,\pi (x_{i}) = P(Y=1|x_{i}) = 0.9 =90%

情况1(这组样本预测正确): 你的yi此时正是1,那么   [\pi(x_{i})]^{y_{i}}[1-\pi(x_{i})]^{1-y_{i}} = 0.9^{1}*0.1^{0} = 0.9

情况2(这组样本预测错误): 你的yi此时正是0,那么   [\pi(x_{i})]^{y_{i}}[1-\pi(x_{i})]^{1-y_{i}} = 0.9^{0}*0.1^{1} = 0.1

可以看到当累乘,乘以0.1的时候,即模型和样本不fit的时候,相比于预测正确,乘上0.9,会使得似然函数变得更小。

因此我们的目的就是极大化最大似然函数 \prod [\pi(x_{i})]^{y_{i}}[1-\pi(x_{i})]^{1-y_{i}}

  • 有了评估指标后,怎么求似然函数的极大值:

取对数!

得到对数似然函数:

Loss(w) = \sum [y_{i}ln(\pi(x_{i}))+(1-y_{i})ln(1-\pi(x_{i}))]

                = \sum [y_{i}(wx_{i})-ln (1+exp(wx_{i}))]

其中,\pi(x) = \frac{1}{1+e^{-w^{T}x}}

得到了只有一个未知数w的函数,于是可以用梯度下降或者拟牛顿法来求得最优解。

-------------------------------------分割线-----------------------------------------

XGBoost

主要是说XGBoost在GBDT的基础上,和GBDT有什么区别。有两大方面:

  1. XGBoost在GBDT上做了许多工程方面的优化(本菜鸡非CS出生,对于工程的研究较少)
  2. 算法上面的优化(这是以下主要展开阐述的内容)

算法的优化:

  • XGBoost加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。
  • GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
    二阶泰勒展开的具体说明:XGBoost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准.
    使用泰勒展开取得函数做自变量的二阶导数形式, 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化/参数选择分开了.
    这种去耦合增加了XGBoost的适用性, 使得它按需选取损失函数, 可以用于分类, 也可以用于回归。
  • XGB并行计算:XGB的并行计算是特征颗粒度的,不是树的颗粒度;
    XGB会使用block结构先对数据先做排序并存储,block结构使并行计算成为可能;
    每次节点分割的时候,并行地去计算每个特征带来的增益,选择增益最大的特征进行分割;
  • 传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器。
  • 传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机森林相似的策略,支持对数据进行采样
  • 传统的GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺失值的处理策略

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逻辑回归的推导如下:根据引用,逻辑回归的模型函数使用sigmoid函数将线性函数映射到(0,1)的区间上。假设输入变量为x,回归系数为β,那么逻辑回归模型可以表示为:f(x) = sigmoid(β0 + β1x1 + β2x2 + ... + βnxn)。其中,sigmoid函数可以表示为:sigmoid(z) = 1 / (1 + e^(-z))。通过最大似然估计的方法,可以得到逻辑回归模型中的回归系数的估计值。 XGBoost是一种提升树算法,它在工程实现中有很多优化。根据引用,XGBoost不仅支持CART树模型,还支持线性分类器,可以用作带有L1或L2正则化的逻辑回归用于分类)或线性回归(用于回归)。在具体工程实现中,XGBoost通过优化目标函数,并使用特定的学习策略和正则化方法来提高模型的性能。 总结起来,逻辑回归是一种使用sigmoid函数将线性函数映射到(0,1)区间上的模型,可以用于分类问题。而XGBoost是一种提升树算法,具有很多优化,包括支持线性分类器和回归模型等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [分类问题——逻辑回归XGBoost](https://blog.csdn.net/weixin_48457572/article/details/116594651)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Xgboost算法推导及分析](https://blog.csdn.net/sxf1061926959/article/details/78303555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [leetcodebp的题-nlp:小案件](https://download.csdn.net/download/weixin_38509656/20044870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值