{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一元线性回归\n",
    "\n",
    "假设有下面的数据，表示某地区房屋面积和售价的关系：\n",
    "\n",
    "|房屋面积（平米）|售价（万）|\n",
    "|-------------|--------|\n",
    "|39.93        |199     |\n",
    "|42.05        |290     |\n",
    "|43.18        |298     |\n",
    "|44.68        |310     |\n",
    "|49.87        |399     |\n",
    "|53.57        |420     |\n",
    "\n",
    "将房屋面积作为横坐标（自变量），售价作为纵坐标（因变量），在二维坐标系中，可以画出一条类似直线的散点图："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "scrolled": true
   },
   "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(30, 60)\n",
    "plt.ylim(100, 600)\n",
    "\n",
    "X = np.array([[39.93,199],[42.05,290],[43.18,298],[44.68,310],[49.87,399],[53.57,420]])\n",
    "plt.scatter(X[:,0], X[:,1])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如何找到一条直线，能最大程度的拟合这些散点数据，这就是 **线性回归**，由于这里只有一个自变量，所以叫做 **一元线性回归**。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "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": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.xlim(30, 60)\n",
    "plt.ylim(100, 600)\n",
    "\n",
    "X = np.array([[39.93,199],[42.05,290],[43.18,298],[44.68,310],[49.87,399],[53.57,420]])\n",
    "plt.scatter(X[:,0], X[:,1])\n",
    "\n",
    "x = np.linspace(30, 60, 100)\n",
    "y = 15*x-360\n",
    "plt.plot(x, y)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在 Andrew Ng 的机器学习讲义中也举了个类似的例子，他使用的是美国俄亥俄州 Portland Oregon 城市的房屋价格，显得更真实一点。都是用房屋面积作为自变量，房屋价格作为因变量。我们知道一元线性函数一般表示为：\n",
    "\n",
    "$$\n",
    "y = ax + b\n",
    "$$\n",
    "\n",
    "一元线性回归就是确定这里的参数 a 和 b，如果刚好有两个点，就可以确定一个二元方程组：\n",
    "\n",
    "$$\n",
    "\\begin{cases}\n",
    "y_1 = ax_1 + b \\\\\n",
    "y_2 = ax_2 + b\n",
    "\\end{cases}\n",
    "$$\n",
    "\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
}
