{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 线性回归示例" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#读取数据源: 面积、房价\n", "filename = 'ex1data2.txt'\n", "content = np.loadtxt(filename, delimiter=',', usecols=(0, 2))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "#数据归一化\n", "def nomalization(arr):\n", " range = np.max(arr) - np.min(arr)\n", " return (arr - np.min(arr)) / range" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "#选择第一列数据作为x轴\n", "x = content[:, :1]\n", "#选择第二列数据作为y轴\n", "y = content[:, 1:]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "x = nomalization(x)\n", "y = nomalization(y)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.collections.PathCollection at 0x1138637b8>" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "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": [ "plt.scatter(x, y)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "#线性函数公式\n", "def formula(a, b, x):\n", " return a*x + b" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "#优化函数\n", "def optimifunc(a, b, x, y, times):\n", " rate = 0.01\n", " n = x.size\n", " yhat = y\n", " for i in range(times):\n", " yhat = formula(a, b, x)\n", " da = np.sum((yhat - y) * x) / n\n", " db = np.sum(yhat - y) /n\n", " a = a - rate * da\n", " b = b - rate * db\n", " plt.scatter(x,y)\n", " plt.plot(x, yhat)\n", " return a, b" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "#初始化参数\n", "a, b = 0, 0" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "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": [ "#学习、训练参数\n", "a, b = optimifunc(a, b, x, y, 1)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "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": [ "a, b = optimifunc(a, b, x, y, 50)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "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": [ "a, b = optimifunc(a, b, x, y, 100)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "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": [ "a, b = optimifunc(a, b, x, y, 500)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "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": [ "a, b = optimifunc(a, b, x, y, 10000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 理论知识" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "先看下房子面积与价格的趋势图:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.collections.PathCollection at 0x113e3a940>" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "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": [ "plt.scatter(content[:, :1], content[:, 1:])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "根据上图可以看出,房子的面积与房价之间的关系是线性的,也就是房子面积越大价格越高。现在要根据已有数据,根据新给的房子面积,预测出最合理的价格。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 数据模型" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "线性关系,可以用线性函数来表示:y = ax + b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "现在x(房子的面积)和y(房子的价格)已经有了,因此,主要是根据历史数据得出a、b的解。例如`2014 * a + b = 399900`,可以看到因为有两个参数,所以无法直接得出a和b的解。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "这就是机器学习的特殊的地方,一个是历史数据多,而且数据不太规则;另一个就是无法直接套用公式得出解。那怎么办呢?采用逼近法。就是先假设a和b的值,然后套用公式得出y的值和历史的y值进行比较,\n", "根据y值的接近程度来调整a和b,直到a、b带入到整个历史数据中得出y的值和历史的y值最接近,就称为公式的最优解。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "假设a、b的初始值为0,带入公式:`2014 * 0 + 0 = 0`,结果为0(我们将计算出来的y值称为yhat,用于真实的y值做区分),而真实y的值为`399900`,因此0不是a、b的最优解。如何评判是不是最优解呢?\n", "一般通过yhat与y值进行比较。yhat与y进行比较的函数我们叫做损失函数(Loss Function)或代价函数(Cast Function)。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 代价函数" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "损失函数是单个样本上的误差,如上例中的yhat计算结果为0,而实际y值为399900,两者的误差为y-yhat=399900。y-yhat就是损失函数。而代价函数指的是整个训练集上所有样本的误差。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "代价函数的作用就是来评价参数a、b与预期结果的拟合程度。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "上面的示例中,我们采用的代价函数是$$\\frac{1}{2m}\\sum_{i=1}^{m}(h(x^i)-y^i)^2$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "yhat-y就是误差值,通过这个意义就可以看出代价函数是用来计算误差的,误差越小说明越接近目标。对误差值平方再求和,一看就知道是方差公式(方差定义参见另一篇文章)。也就是说这里用方差作为代价函数。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "只要我们不停变换参数a、b的值带入训练集,然后通过代价函数来评判哪个更优,将a、b所有的可能性遍历完后,就可以得出最优a和b。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 梯度下降" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "通过代价函数可以计算出来不同的参数的优劣,然而我们不可能真的将所有a、b遍历计算。因此需要找一种好的方法,用最快的速度找出a和b,也就是最短路径。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "梯度下降就是找出最短路径的一种方法。其原理类似你站在一个山坡上,360度观察四周,朝哪个方向走可以快速下山。转换成数学方式,就是求导。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "因为我们的代价函数是二阶函数,二阶导数的意义是凹凸性,通过凹凸性来判断是上坡还是下坡,让我们朝坡下快速行进。需要注意的是,因为函数可能存在多个凹点,因此最终得出的a、b只是局部最优解,而不是全局最优解。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "最后一点是rate,就是下山的方向每次迈出的步子有多大,不能太大也不能太小。对代价函数求导后的函数,我们一般称之为优化函数。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "对a求导:$$\\frac{\\partial J}{\\partial a}= \\frac{1}{m}\\sum_{i=1}^{m}x(h(x^i)-y^i)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "对b求导:$$\\frac{\\partial J}{\\partial b}= \\frac{1}{m}\\sum_{i=1}^{m}(h(x^i)-y^i)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "更新a: $a = a - \\alpha \\frac{\\partial J}{\\partial a}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "更新b: $b = b - \\alpha \\frac{\\partial J}{\\partial b}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "其中$\\alpha$就是rate。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 欠拟合、过拟合" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "首先确定一点:过拟合和欠拟合都是不好的,预测的准确度低。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "在做机器学习时,会将历史数据分为两部分:一部分是训练集,另一部分是测试集。用训练集得出最优函数,再用测试集去验证这个函数是否符合实际需求。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "欠拟合就是训练集上表现差,测试集上预测准确度低。过拟合是在训练集上表现过于良好,但在测试集上表现差。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 总结" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "机器学习涉及到很多方面的知识,跟以往我们解决问题的方式有很大区别,因此要先从思维上做些转换,再根据自身的目的,对涉及面做些取舍,毕竟我们是为了解决问题,而不是要成为这方面的专家。" ] } ], "metadata": { "file_extension": ".py", "kernelspec": { "display_name": "Python 3.7.3 64-bit", "language": "python", "name": "python37364bita178267b7104410b8f4fa90d927b8508" }, "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.3" }, "mimetype": "text/x-python", "name": "python", "npconvert_exporter": "python", "pygments_lexer": "ipython3", "version": 3 }, "nbformat": 4, "nbformat_minor": 4 }