You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Logistic_regression.ipynb 88 kB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "# Logistic Regression\n",
  8. "\n",
  9. "逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。本节主要详述逻辑回归模型的基础。\n",
  10. "\n",
  11. "\n",
  12. "## 1 逻辑回归模型\n",
  13. "回归是一种比较容易理解的模型,就相当于$y=f(x)$,表明自变量$x$与因变量$y$的关系。最常见问题有如医生治病时的望、闻、问、切,之后判定病人是否生病或生了什么病,其中的望闻问切就是获取自变量$x$,即特征数据,判断是否生病就相当于获取因变量$y$,即预测分类。\n",
  14. "\n",
  15. "最简单的回归是线性回归,在此借用Andrew NG的讲义,有如图所示,$X$为数据点——肿瘤的大小,$Y$为观测值——是否是恶性肿瘤。通过构建线性回归模型,如$h_\\theta(x)$所示,构建线性回归模型后,即可以根据肿瘤大小,预测是否为恶性肿瘤$h_\\theta(x)) \\ge 0.5$为恶性,$h_\\theta(x) \\lt 0.5$为良性。\n",
  16. "\n",
  17. "![LinearRegression](images/fig1.gif)\n",
  18. "\n",
  19. "然而线性回归的鲁棒性很差,例如在上图的数据集上建立回归,因最右边噪点的存在,使回归模型在训练集上表现都很差。这主要是由于线性回归在整个实数域内敏感度一致,而分类范围,需要在$[0,1]$。\n",
  20. "\n",
  21. "逻辑回归就是一种减小预测范围,将预测值限定为$[0,1]$间的一种回归模型,其回归方程与回归曲线如图2所示。逻辑曲线在$z=0$时,十分敏感,在$z>>0$或$z<<0$处,都不敏感,将预测值限定为$(0,1)$。\n",
  22. "\n",
  23. "![LogisticFunction](images/fig2.gif)\n",
  24. "\n"
  25. ]
  26. },
  27. {
  28. "cell_type": "markdown",
  29. "metadata": {},
  30. "source": [
  31. "### 逻辑回归表达式\n",
  32. "\n",
  33. "这个函数称为Logistic函数(logistic function),也称为Sigmoid函数(sigmoid function)。函数公式如下:\n",
  34. "\n",
  35. "$$\n",
  36. "g(z) = \\frac{1}{1+e^{-z}}\n",
  37. "$$\n",
  38. "\n",
  39. "Logistic函数当z趋近于无穷大时,g(z)趋近于1;当z趋近于无穷小时,g(z)趋近于0。Logistic函数的图形如上图所示。Logistic函数求导时有一个特性,这个特性将在下面的推导中用到,这个特性为:\n",
  40. "$$\n",
  41. "g'(z) = \\frac{d}{dz} \\frac{1}{1+e^{-z}} \\\\\n",
  42. " = \\frac{1}{(1+e^{-z})^2}(e^{-z}) \\\\\n",
  43. " = \\frac{1}{(1+e^{-z})} (1 - \\frac{1}{(1+e^{-z})}) \\\\\n",
  44. " = g(z)(1-g(z))\n",
  45. "$$\n",
  46. "\n"
  47. ]
  48. },
  49. {
  50. "cell_type": "markdown",
  51. "metadata": {},
  52. "source": [
  53. "逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数$g(z)$将最为假设函数来预测。$g(z)$可以将连续值映射到0到1之间。线性回归模型的表达式带入$g(z)$,就得到逻辑回归的表达式:\n",
  54. "\n",
  55. "$$\n",
  56. "h_\\theta(x) = g(\\theta^T x) = \\frac{1}{1+e^{-\\theta^T x}}\n",
  57. "$$"
  58. ]
  59. },
  60. {
  61. "cell_type": "markdown",
  62. "metadata": {},
  63. "source": [
  64. "### 逻辑回归的软分类\n",
  65. "\n",
  66. "现在我们将y的取值$h_\\theta(x)$通过Logistic函数归一化到(0,1)间,$y$的取值有特殊的含义,它表示结果取1的概率,因此对于输入$x$分类结果为类别1和类别0的概率分别为:\n",
  67. "\n",
  68. "$$\n",
  69. "P(y=1|x,\\theta) = h_\\theta(x) \\\\\n",
  70. "P(y=0|x,\\theta) = 1 - h_\\theta(x)\n",
  71. "$$\n",
  72. "\n",
  73. "对上面的表达式合并一下就是:\n",
  74. "\n",
  75. "$$\n",
  76. "p(y|x,\\theta) = (h_\\theta(x))^y (1 - h_\\theta(x))^{1-y}\n",
  77. "$$\n",
  78. "\n"
  79. ]
  80. },
  81. {
  82. "cell_type": "markdown",
  83. "metadata": {},
  84. "source": [
  85. "### 梯度上升\n",
  86. "\n",
  87. "得到了逻辑回归的表达式,下一步跟线性回归类似,构建似然函数,然后最大似然估计,最终推导出$\\theta$的迭代更新表达式。只不过这里用的不是梯度下降,而是梯度上升,因为这里是最大化似然函数。\n",
  88. "\n",
  89. "我们假设训练样本相互独立,那么似然函数表达式为:\n",
  90. "![Loss](images/eq_loss.png)\n",
  91. "\n",
  92. "同样对似然函数取log,转换为:\n",
  93. "![LogLoss](images/eq_logloss.png)\n",
  94. "\n",
  95. "转换后的似然函数对$\\theta$求偏导,在这里我们以只有一个训练样本的情况为例:\n",
  96. "![LogLossDiff](images/eq_logloss_diff.png)\n",
  97. "\n",
  98. "这个求偏导过程中:\n",
  99. "* 第一步是对$\\theta$偏导的转化,依据偏导公式:$y=lnx$, $y'=1/x$。\n",
  100. "* 第二步是根据g(z)求导的特性g'(z) = g(z)(1 - g(z)) 。\n",
  101. "* 第三步就是普通的变换。\n",
  102. "\n",
  103. "这样我们就得到了梯度上升每次迭代的更新方向,那么$\\theta$的迭代表达式为:\n",
  104. "$$\n",
  105. "\\theta_j := \\theta_j + \\alpha(y^i - h_\\theta(x^i)) x_j^i\n",
  106. "$$\n",
  107. "\n"
  108. ]
  109. },
  110. {
  111. "cell_type": "code",
  112. "execution_count": 2,
  113. "metadata": {},
  114. "outputs": [],
  115. "source": [
  116. "%matplotlib inline\n",
  117. "\n",
  118. "from __future__ import division\n",
  119. "import numpy as np\n",
  120. "import sklearn.datasets\n",
  121. "import matplotlib.pyplot as plt\n",
  122. "\n",
  123. "np.random.seed(0)\n"
  124. ]
  125. },
  126. {
  127. "cell_type": "code",
  128. "execution_count": 21,
  129. "metadata": {},
  130. "outputs": [
  131. {
  132. "name": "stdout",
  133. "output_type": "stream",
  134. "text": [
  135. "data = [[ 0.694565 0.42666408]\n",
  136. " [ 1.68353008 -0.80016643]\n",
  137. " [-0.25046823 0.24392224]\n",
  138. " [-1.13337973 -0.6112787 ]\n",
  139. " [ 1.76905577 -0.31025439]\n",
  140. " [ 2.00225511 -0.18592 ]\n",
  141. " [ 0.91169861 0.46995543]\n",
  142. " [ 0.88211794 -0.46701178]\n",
  143. " [ 0.75006972 0.33995342]\n",
  144. " [ 1.30208867 -0.72334923]]\n",
  145. "label = [0 1 1 0 1 1 0 1 0 1]\n"
  146. ]
  147. },
  148. {
  149. "data": {
  150. "text/plain": [
  151. "Text(0.5,1,'Original Data')"
  152. ]
  153. },
  154. "execution_count": 21,
  155. "metadata": {},
  156. "output_type": "execute_result"
  157. },
  158. {
  159. "data": {
  160. "image/png": "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\n",
  161. "text/plain": [
  162. "<Figure size 432x288 with 1 Axes>"
  163. ]
  164. },
  165. "metadata": {},
  166. "output_type": "display_data"
  167. }
  168. ],
  169. "source": [
  170. "# load sample data\n",
  171. "data, label = sklearn.datasets.make_moons(200, noise=0.30)\n",
  172. "\n",
  173. "print(\"data = \", data[:10, :])\n",
  174. "print(\"label = \", label[:10])\n",
  175. "\n",
  176. "plt.scatter(data[:,0], data[:,1], c=label)\n",
  177. "plt.title(\"Original Data\")"
  178. ]
  179. },
  180. {
  181. "cell_type": "code",
  182. "execution_count": 12,
  183. "metadata": {},
  184. "outputs": [],
  185. "source": [
  186. "def plot_decision_boundary(predict_func, data, label):\n",
  187. " \"\"\"画出结果图\n",
  188. " Args:\n",
  189. " pred_func (callable): 预测函数\n",
  190. " data (numpy.ndarray): 训练数据集合\n",
  191. " label (numpy.ndarray): 训练数据标签\n",
  192. " \"\"\"\n",
  193. " x_min, x_max = data[:, 0].min() - .5, data[:, 0].max() + .5\n",
  194. " y_min, y_max = data[:, 1].min() - .5, data[:, 1].max() + .5\n",
  195. " h = 0.01\n",
  196. "\n",
  197. " xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
  198. "\n",
  199. " Z = predict_func(np.c_[xx.ravel(), yy.ravel()])\n",
  200. " Z = Z.reshape(xx.shape)\n",
  201. "\n",
  202. " plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)\n",
  203. " plt.scatter(data[:, 0], data[:, 1], c=label, cmap=plt.cm.Spectral)\n",
  204. " plt.show()\n",
  205. "\n"
  206. ]
  207. },
  208. {
  209. "cell_type": "code",
  210. "execution_count": 13,
  211. "metadata": {},
  212. "outputs": [],
  213. "source": [
  214. "def sigmoid(x):\n",
  215. " return 1.0 / (1 + np.exp(-x))\n",
  216. "\n",
  217. "class Logistic(object):\n",
  218. " \"\"\"logistic回归模型\"\"\"\n",
  219. " def __init__(self, data, label):\n",
  220. " self.data = data\n",
  221. " self.label = label\n",
  222. "\n",
  223. " self.data_num, n = np.shape(data)\n",
  224. " self.weights = np.ones(n)\n",
  225. " self.b = 1\n",
  226. "\n",
  227. " def train(self, num_iteration=150):\n",
  228. " \"\"\"随机梯度上升算法\n",
  229. " Args:\n",
  230. " data (numpy.ndarray): 训练数据集\n",
  231. " labels (numpy.ndarray): 训练标签\n",
  232. " num_iteration (int): 迭代次数\n",
  233. " \"\"\"\n",
  234. " for j in range(num_iteration):\n",
  235. " data_index = list(range(self.data_num))\n",
  236. " for i in range(self.data_num):\n",
  237. " # 学习速率\n",
  238. " alpha = 0.01\n",
  239. " rand_index = int(np.random.uniform(0, len(data_index)))\n",
  240. " error = self.label[rand_index] - sigmoid(sum(self.data[rand_index] * self.weights + self.b))\n",
  241. " self.weights += alpha * error * self.data[rand_index]\n",
  242. " self.b += alpha * error\n",
  243. " del(data_index[rand_index])\n",
  244. "\n",
  245. " def predict(self, predict_data):\n",
  246. " \"\"\"预测函数\"\"\"\n",
  247. " result = list(map(lambda x: 1 if sum(self.weights * x + self.b) > 0 else 0,\n",
  248. " predict_data))\n",
  249. " return np.array(result)\n"
  250. ]
  251. },
  252. {
  253. "cell_type": "code",
  254. "execution_count": 14,
  255. "metadata": {},
  256. "outputs": [
  257. {
  258. "data": {
  259. "image/png": "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\n",
  260. "text/plain": [
  261. "<Figure size 432x288 with 1 Axes>"
  262. ]
  263. },
  264. "metadata": {},
  265. "output_type": "display_data"
  266. }
  267. ],
  268. "source": [
  269. "logistic = Logistic(data, label)\n",
  270. "logistic.train(200)\n",
  271. "plot_decision_boundary(lambda x: logistic.predict(x), data, label)"
  272. ]
  273. },
  274. {
  275. "cell_type": "markdown",
  276. "metadata": {},
  277. "source": [
  278. "## References\n",
  279. "\n",
  280. "* [逻辑回归模型(Logistic Regression, LR)基础](https://www.cnblogs.com/sparkwen/p/3441197.html)\n",
  281. "* [逻辑回归(Logistic Regression)](http://www.cnblogs.com/BYRans/p/4713624.html)"
  282. ]
  283. }
  284. ],
  285. "metadata": {
  286. "kernelspec": {
  287. "display_name": "Python 3",
  288. "language": "python",
  289. "name": "python3"
  290. },
  291. "language_info": {
  292. "codemirror_mode": {
  293. "name": "ipython",
  294. "version": 3
  295. },
  296. "file_extension": ".py",
  297. "mimetype": "text/x-python",
  298. "name": "python",
  299. "nbconvert_exporter": "python",
  300. "pygments_lexer": "ipython3",
  301. "version": "3.5.2"
  302. }
  303. },
  304. "nbformat": 4,
  305. "nbformat_minor": 2
  306. }

机器学习越来越多应用到飞行器、机器人等领域,其目的是利用计算机实现类似人类的智能,从而实现装备的智能化与无人化。本课程旨在引导学生掌握机器学习的基本知识、典型方法与技术,通过具体的应用案例激发学生对该学科的兴趣,鼓励学生能够从人工智能的角度来分析、解决飞行器、机器人所面临的问题和挑战。本课程主要内容包括Python编程基础,机器学习模型,无监督学习、监督学习、深度学习基础知识与实现,并学习如何利用机器学习解决实际问题,从而全面提升自我的《综合能力》。

Contributors (1)