From 8aee0cc1e7ac53cd05272e4281d54bb53032cba6 Mon Sep 17 00:00:00 2001 From: Shuhui Bu Date: Thu, 13 Sep 2018 19:13:22 +0800 Subject: [PATCH] Imporve logistic regression --- 1_logistic_regression/Logistic_regression.ipynb | 83 +++++++++++++++++++++++ 1_logistic_regression/Logistic_regression.py | 66 ++++++++++++++++++ 1_logistic_regression/images/eq_logloss.png | Bin 0 -> 9342 bytes 1_logistic_regression/images/eq_logloss_diff.png | Bin 0 -> 33126 bytes 1_logistic_regression/images/eq_loss.png | Bin 0 -> 11620 bytes 5 files changed, 149 insertions(+) create mode 100644 1_logistic_regression/images/eq_logloss.png create mode 100644 1_logistic_regression/images/eq_logloss_diff.png create mode 100644 1_logistic_regression/images/eq_loss.png diff --git a/1_logistic_regression/Logistic_regression.ipynb b/1_logistic_regression/Logistic_regression.ipynb index 2e6c35f..53b24cf 100644 --- a/1_logistic_regression/Logistic_regression.ipynb +++ b/1_logistic_regression/Logistic_regression.ipynb @@ -25,6 +25,89 @@ ] }, { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 逻辑回归表达式\n", + "\n", + "这个函数称为Logistic函数(logistic function),也称为Sigmoid函数(sigmoid function)。函数公式如下:\n", + "\n", + "$$\n", + "g(z) = \\frac{1}{1+e^{-z}}\n", + "$$\n", + "\n", + "Logistic函数当z趋近于无穷大时,g(z)趋近于1;当z趋近于无穷小时,g(z)趋近于0。Logistic函数的图形如上图所示。Logistic函数求导时有一个特性,这个特性将在下面的推导中用到,这个特性为:\n", + "$$\n", + "g'(z) = \\frac{d}{dz} \\frac{1}{1+e^{-z}} \\\\\n", + " = \\frac{1}{(1+e^{-z})^2}(e^{-z}) \\\\\n", + " = \\frac{1}{(1+e^{-z})} (1 - \\frac{1}{(1+e^{-z})}) \\\\\n", + " = g(z)(1-g(z))\n", + "$$\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数$g(z)$将最为假设函数来预测。$g(z)$可以将连续值映射到0到1之间。线性回归模型的表达式带入$g(z)$,就得到逻辑回归的表达式:\n", + "\n", + "$$\n", + "h_\\theta(x) = g(\\theta^T x) = \\frac{1}{1+e^{-\\theta^T x}}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 逻辑回归的软分类\n", + "\n", + "现在我们将y的取值$h_\\theta(x)$通过Logistic函数归一化到(0,1)间,$y$的取值有特殊的含义,它表示结果取1的概率,因此对于输入$x$分类结果为类别1和类别0的概率分别为:\n", + "\n", + "$$\n", + "P(y=1|x,\\theta) = h_\\theta(x) \\\\\n", + "P(y=0|x,\\theta) = 1 - h_\\theta(x)\n", + "$$\n", + "\n", + "对上面的表达式合并一下就是:\n", + "\n", + "$$\n", + "p(y|x,\\theta) = (h_\\theta(x))^y (1 - h_\\theta(x))^{1-y}\n", + "$$\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 梯度上升\n", + "\n", + "得到了逻辑回归的表达式,下一步跟线性回归类似,构建似然函数,然后最大似然估计,最终推导出$\\theta$的迭代更新表达式。只不过这里用的不是梯度下降,而是梯度上升,因为这里是最大化似然函数。\n", + "\n", + "我们假设训练样本相互独立,那么似然函数表达式为:\n", + "![Loss](images/eq_loss.png)\n", + "\n", + "同样对似然函数取log,转换为:\n", + "![LogLoss](images/eq_logloss.png)\n", + "\n", + "转换后的似然函数对$\\theta$求偏导,在这里我们以只有一个训练样本的情况为例:\n", + "![LogLossDiff](images/eq_logloss_diff.png)\n", + "\n", + "这个求偏导过程中:\n", + "* 第一步是对$\\theta$偏导的转化,依据偏导公式:$y=lnx$, $y'=1/x$。\n", + "* 第二步是根据g(z)求导的特性g'(z) = g(z)(1 - g(z)) 。\n", + "* 第三步就是普通的变换。\n", + "\n", + "这样我们就得到了梯度上升每次迭代的更新方向,那么$\\theta$的迭代表达式为:\n", + "$$\n", + "\\theta_j := \\theta_j + \\alpha(y^i - h_\\theta(x^i)) x_j^i\n", + "$$\n", + "\n" + ] + }, + { "cell_type": "code", "execution_count": 2, "metadata": {}, diff --git a/1_logistic_regression/Logistic_regression.py b/1_logistic_regression/Logistic_regression.py index eabdefb..971b871 100644 --- a/1_logistic_regression/Logistic_regression.py +++ b/1_logistic_regression/Logistic_regression.py @@ -38,6 +38,72 @@ # # +# ### 逻辑回归表达式 +# +# 这个函数称为Logistic函数(logistic function),也称为Sigmoid函数(sigmoid function)。函数公式如下: +# +# $$ +# g(z) = \frac{1}{1+e^{-z}} +# $$ +# +# Logistic函数当z趋近于无穷大时,g(z)趋近于1;当z趋近于无穷小时,g(z)趋近于0。Logistic函数的图形如上图所示。Logistic函数求导时有一个特性,这个特性将在下面的推导中用到,这个特性为: +# $$ +# g'(z) = \frac{d}{dz} \frac{1}{1+e^{-z}} \\ +# = \frac{1}{(1+e^{-z})^2}(e^{-z}) \\ +# = \frac{1}{(1+e^{-z})} (1 - \frac{1}{(1+e^{-z})}) \\ +# = g(z)(1-g(z)) +# $$ +# +# + +# 逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数$g(z)$将最为假设函数来预测。$g(z)$可以将连续值映射到0到1之间。线性回归模型的表达式带入$g(z)$,就得到逻辑回归的表达式: +# +# $$ +# h_\theta(x) = g(\theta^T x) = \frac{1}{1+e^{-\theta^T x}} +# $$ + +# ### 逻辑回归的软分类 +# +# 现在我们将y的取值$h_\theta(x)$通过Logistic函数归一化到(0,1)间,$y$的取值有特殊的含义,它表示结果取1的概率,因此对于输入$x$分类结果为类别1和类别0的概率分别为: +# +# $$ +# P(y=1|x,\theta) = h_\theta(x) \\ +# P(y=0|x,\theta) = 1 - h_\theta(x) +# $$ +# +# 对上面的表达式合并一下就是: +# +# $$ +# p(y|x,\theta) = (h_\theta(x))^y (1 - h_\theta(x))^{1-y} +# $$ +# +# + +# ### 梯度上升 +# +# 得到了逻辑回归的表达式,下一步跟线性回归类似,构建似然函数,然后最大似然估计,最终推导出$\theta$的迭代更新表达式。只不过这里用的不是梯度下降,而是梯度上升,因为这里是最大化似然函数。 +# +# 我们假设训练样本相互独立,那么似然函数表达式为: +# ![Loss](images/eq_loss.png) +# +# 同样对似然函数取log,转换为: +# ![LogLoss](images/eq_logloss.png) +# +# 转换后的似然函数对$\theta$求偏导,在这里我们以只有一个训练样本的情况为例: +# ![LogLossDiff](images/eq_logloss_diff.png) +# +# 这个求偏导过程中: +# * 第一步是对$\theta$偏导的转化,依据偏导公式:$y=lnx$, $y'=1/x$。 +# * 第二步是根据g(z)求导的特性g'(z) = g(z)(1 - g(z)) 。 +# * 第三步就是普通的变换。 +# +# 这样我们就得到了梯度上升每次迭代的更新方向,那么$\theta$的迭代表达式为: +# $$ +# \theta_j := \theta_j + \alpha(y^i - h_\theta(x^i)) x_j^i +# $$ +# +# + # + # %matplotlib inline diff --git a/1_logistic_regression/images/eq_logloss.png b/1_logistic_regression/images/eq_logloss.png new file mode 100644 index 0000000000000000000000000000000000000000..a802d44ccfd75a24f6dbce5a3666dd00836fc115 GIT binary patch literal 9342 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 literal 0 KcmV+b0RR6000031 diff --git a/1_logistic_regression/images/eq_loss.png b/1_logistic_regression/images/eq_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..8e1bd6b8eb4ec282535a8abe83c91ab989daaacd GIT binary patch literal 11620 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 iFrc6~fWVkR;Qs+;Y+GQ5F00f40000