2020机器学习GBDT 分类问题(1)

作者: zidea | 来源:发表于2020-03-23 19:49 被阅读0次
machine_learning.jpg

今天用的数据集,通过训练来预测用户是否会喜欢这部电影。

喜欢爆米花电影 年龄 Favorite Color American Captial2
Yes 12 Blue Yes
Yes 87 Green Yes
No 44 Blue No

因为今天主要介绍算法,所以我们对之前数据集进行裁剪,只保留 3 条数据。

输入数据,我们现在已经学习到如何使用数据Data \{(x_i,y_i) \}_{i=1}^n,这里我还是要再啰嗦一句x_i 表示一行,也就是一个样本。y_i 表示用户是否喜欢该电影,也就是二分类问题(喜欢还是不喜欢)

可以选择不同损失函数。其实有时候借助图形可以帮助我们更好理解损失函数

定义损失函数

\sum_{i=1}^N y_i \times \log (p) + (1 - y_i) \times \log (1-p)

蓝色表示喜欢美国队长2的人,而红色则表示不喜欢的人。我们通过图来将表格表示出来。

现在,就像我们对 Logistic 回归所做的那样,会计算给定的数据的对数(似然)估计

\sum_{i=1}^N y_i \times \log (p) + (1 - y_i) \times \log (1 - p)

  • 这里 p 表示估计概率,这里是 0.67
  • y_i 表示观察的数据(也就是真实值),训练数据集中出现喜欢美国队长2 有 2 人
  • 对于喜欢欢美国队长 2 人的 y_i 表示为 1 那么 (1 - y_i) = 0 所以就是
喜欢爆米花电影 年龄 Favorite Color American Captial2
Yes 12 Blue Yes

\begin{aligned} \sum_{i=1}^N y_i \times \log (p) + (1 - y_i) \times \log (1 - p) \\ 1 \times \log 0.67 + (1 - 1) \times \log (1 - 0.67)\\ \log (0.67) + \log(0.67) + \log(1 - 0.67) \end{aligned}

-0.57 + - 0.57 + -1.6 = -2.7

因为预测得越好,对数(似然)越大,所以进行逻辑回归时,的目标是使对数(似然)最大化,也就是最大化似然估计。

这样一来如果我们想使用对数(似然)作为损失函数,就需要将对数(似然)乘以-1,从而将求最大似然转换为求最小值来更好拟合数据。
- \sum_{i=1}^N y_i \times \log (p) + (1 - y_i) \times \log (1 - p)

现在需要进行一系列转换后将负对数(似然),使它是预测对数(似然)的函数,来代替预测概率 p。

- \left[ Observed \times \log(p) + (1 - Observed) \times \log (1 - p) \right]

Observed 就是我们观测到的y_i
- Observed \times \log(p) - (1 - Observed) \times \log (1 - p)
我们去掉外层括号,暂时只考虑单个样本的损失值。开始进行化简

- Observed \times \log(p) - \log (1-p) + Observed \times \log (1 - p)

将具有 Observed 的项进行合并,得到下面式子
- Observed \times [\log p + \log (1 -p) ] - \log (1 -p)
\log p + \log (1 -p) 这部分用对数几率来表示
\log p - \log (1-p) = \frac{\log p}{\log (1-p)} = \log (\frac{p}{1 - p}) = \log(odds)
- Observed \times \log(odds) - \log (1 -p)

p = \frac{e^{\log(odds)}}{1 + e^{\log(odds)}}
这里我还是简单推到一下,
\frac{p}{1 - p} = e^{log(odds)}

\begin{aligned} p = (1 - p) e^{log(odds)}\\ p(1 + e^{log(odds)}) = e^{log(odds)}\\ p = \frac{e^{\log(odds)}}{1 + e^{\log(odds)}} \end{aligned}

好我们继续向下进行推到

\log (1-p) = \log (1 - \frac{e^{\log(odds)}}{1 + e^{\log(odds)}})

\log(1 -p) = \log (\frac{1}{1 + e^{\log(odds)}}) = \log(1) - \log(1 + e^{\log(odds)})

\log(1) - \log(1 + e^{\log(odds)}) = -\log(1 + e^{\log(odds)})
到现在为止我们成功将概率的似然估计转换为了对数几率表示损失函数,接下来就是开始求导过程
-Observed \times \log(odds) + \log(1 + e^{\log(odds)})

然后对\log(odds)进行求导

\frac{d}{d \log(odds)} = -Observed + \frac{1}{1 + e^{\log(odds)}} \times e^{\log(odds)}

-Observed + \frac{e^{\log(odds)}}{1 + e^{\log(odds)}} = -Observed + p

这是因为我们之前已经知道p = frac{e^{\log(odds)}}{1 + e^{\log(odds)}},在实际开发中,我们到底使用概率表达损失函数还是使用对数几率的函数需要根据实际情况而定。

-Observed \times \gamma + \log(1 + e^{\gamma}) \, for\,\gamma = \log(odds)

现在我们对求和
\begin{aligned} -1 \times \log(odds) + \log(1 + e^{\log(odds)})\\ -1 \times \log(odds) + \log(1 + e^{\log(odds)})\\ -0 \times \log(odds) + \log(1 + e^{\log(odds)})\\ \end{aligned}

\gamma的均值最小值,也就是表示我们需要找到一个可以取和最小的\log(odds)最小值就需要我们对上式进行求导

\begin{aligned} -1 \times \log(odds) + \log(1 + e^{\log(odds)}) \rightarrow -1 + \frac{e^{\log(odds)}}{1 + e^{\log(odds)}}\\ -1 \times \log(odds) + \log(1 + e^{\log(odds)}) \rightarrow -1 + \frac{e^{\log(odds)}}{1 + e^{\log(odds)}}\\ -0 \times \log(odds) + \log(1 + e^{\log(odds)}) \rightarrow -0 + \frac{e^{\log(odds)}}{1 + e^{\log(odds)}} \end{aligned}

\begin{aligned} -1 \times \log(odds) + \log(1 + e^{\log(odds)}) \rightarrow -1 + p\\ -1 \times \log(odds) + \log(1 + e^{\log(odds)}) \rightarrow -1 + p\\ -0 \times \log(odds) + \log(1 + e^{\log(odds)}) \rightarrow -0 + p \end{aligned}

-1 + p + -1 + p + 0 + p = 0 \rightarrow p = \frac{2}{3}
大家感觉为什么绕这么一个圈子,最后结果就是和我们根据数据和基础概率就可以得到结论。好计算出概率后,我们就可以根据概率来计算几率

\log(odds) = \log(\frac{p}{1-p}) = \log \frac{2}{1}
F_0(x) = \log \frac{2}{1} = 0.69

最后希望大家关注我们微信公众号


wechat.jpeg

相关文章

  • 2020机器学习GBDT 分类问题(1)

    今天用的数据集,通过训练来预测用户是否会喜欢这部电影。 喜欢爆米花电影年龄Favorite ColorAmeric...

  • 2020机器学习GBDT 分类问题(2)

    现在我们通过一系列的推导得出 0.69 是如何得到,为什么将 0.69 作为模型初始化的参数。或者说我们创建叶节点...

  • 2020机器学习GBDT(1)

    目标 介绍什么是梯度提升(Gradient Boost),如何运用梯度提升来作为回归和分类问题。以及其背后实现算法...

  • 决策树之 GBDT 算法 - 分类部分

    上一次我们一起学习了 GBDT 算法的回归部分,今天我们继续学习该算法的分类部分。使用 GBDT 来解决分类问题和...

  • GBDT原理最通俗的解释

    本文尽量以简洁语言说明GBDT。 1.什么是GBDT GBDT属于集成算法的一种,基分类器是回归树(分类问题也是回...

  • 机器学习成长记录

    1.大纲 机器学习类型: [1]输出空间类型分类:(1)二元分类是机器学习领域非常核心和基本的问题。二元分类有线性...

  • 2020机器学习GBDT(2)

    课前甜点 现在年轻人工作压力都比较大,所以难免用一些饮料和小甜品来带走压力排出体外,当然也会多少影响身体健康。但是...

  • Kaggle竞赛:Titanic - A Data Scienc

    这是一个分类问题,也是入门机器学习最常见的一个分类问题。类似的机器学习hello world级别的问题还有房...

  • 【机器学习】分类问题

    假设函数的表达式 逻辑回归模型 我们希望 0≤h≤1,可以设h=g(θ.T x)令g(z)=1/(1+e^(-z)...

  • GBDT原理分析以及XGBoost代码实践

    简介 GBDT中文译为梯度提升决策树。GBDT是以分类树或者回归树作为基本分类器的提升方法,它被认为是统计学习中性...

网友评论

    本文标题:2020机器学习GBDT 分类问题(1)

    本文链接:https://www.haomeiwen.com/subject/piciyhtx.html