{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "继续上面的问题，我们希望找到下面这样的一个函数：\n",
    "\n",
    "$$\n",
    "y = \n",
    "\\begin{cases}\n",
    "1,\\quad x \\geq k \\\\ \n",
    "0,\\quad x < k \n",
    "\\end{cases}\n",
    "$$\n",
    "\n",
    "其中的 k 称为**决策边界**，当分数大于决策边界时，就预测考试通过，当分数低于决策边界时，就预测考试未通过。但是上面这样的分段函数无论是求导还是计算都不太方便，为了拟合这个函数，数据科学家们提出了下面的 **S 型函数**：\n",
    "\n",
    "$$\n",
    "y = \\frac{1}{1 + e^{-x}}\n",
    "$$\n",
    "\n",
    "它的图形如下图所示：\n",
    "\n",
    "![](../images/sigmoid.jpg)\n",
    "\n",
    "这种 S 型形状的函数叫做 **Sigmoid 函数**，它的定义域是 $(-\\infty, +\\infty)$，值域却很好的限制在 (0, 1) 之间，这和我们要拟合的分类问题是一致的。单词 sigmoid 由 sigma 和后缀 -oid 合成而来，sigma 即希腊文第十八个字母 $\\sigma$，通常用来指代字母 S，后缀 -oid 表示『像……的东西』，因此 Sigmoid 函数实际上是以函数的形状命名，表示一个像 S 型的函数。上面这个 Sigmoid 函数一般称之为 **逻辑函数**（logistic function，也有的地方叫做 **对数几率函数** 或 **对率函数**）。像这样的 S 型函数有很多，另一个常见的 Sigmoid 函数是 **双曲正切函数**（hyperbolic tangent function，简称为 **tanh 函数**）：\n",
    "\n",
    "$$\n",
    "y = tanh x = \\frac{e^x - e^{-x}}{e^x + e^{-x}}\n",
    "$$\n",
    "\n",
    "它也是神经网络中一个常用的激活函数。但我们这里只用逻辑函数来拟合前面提到的散点数据，在上面的逻辑函数中，$e$ 的指数是 $-x$，当我们稍微调整下这里的指数，改成 $-(2x-154)$，则有：\n",
    "\n",
    "$$\n",
    "y = \\frac{1}{1 + e^{-(2x-154)}}\n",
    "$$\n",
    "\n",
    "画出这个图形，可以看到这个函数可以非常好的拟合我们的数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.xlim(50, 100)\n",
    "plt.ylim(-0.5, 1.5)\n",
    "\n",
    "X = np.array([[80,1],[85,1],[74,0],[63,0],[90,1],[70,0]])\n",
    "plt.scatter(X[:,0], X[:,1])\n",
    "\n",
    "x = np.linspace(50, 100, 100)\n",
    "y = 1/(1 + np.exp(-(2*x-154)))\n",
    "plt.plot(x, y)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们把上面的逻辑函数记为 g(z)，即：\n",
    "\n",
    "$$\n",
    "g(z) = \\frac{1}{1+e^{-z}}\n",
    "$$\n",
    "\n",
    "那么上面的拟合函数就可以写成：\n",
    "\n",
    "$$\n",
    "y = g(2x-154) = g(wx+b)\n",
    "$$\n",
    "\n",
    "也可以写成反函数的形式：\n",
    "\n",
    "$$\n",
    "g^{-1}(y) = wx+b\n",
    "$$\n",
    "\n",
    "可以发现这个式子和线性模型非常像，可以说，自变量 x 和 因变量 y 的逻辑函数的反函数呈线性关系。实际上，这里的 $g(\\cdot)$ 通常称为**连接函数**（link function，或称为联系函数），它是一个单调可微的函数，通过连接函数得到的模型称为**广义线性模型**（generalized linear model）。\n",
    "\n",
    "使用中学时的数学知识，可以推导出逻辑函数的反函数为：\n",
    "\n",
    "$$\n",
    "g^{-1}(y) = ln \\frac{y}{1-y}\n",
    "$$"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
