Skip to content

Instantly share code, notes, and snippets.

@fabiogaluppo
Created September 24, 2018 01:22
Show Gist options
  • Save fabiogaluppo/6718cf5a54f5e830e8051994d4abe6c5 to your computer and use it in GitHub Desktop.
Save fabiogaluppo/6718cf5a54f5e830e8051994d4abe6c5 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt \n",
"from math import sqrt, atan, fabs"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def mean(X):\n",
" return np.mean(X)\n",
"\n",
"def variance(X, Xmean):\n",
" return np.sum((X - Xmean)**2)\n",
"\n",
"def covariance(X, Xmean, Y, Ymean):\n",
" return np.sum((X - Xmean) * (Y - Ymean))\n",
"\n",
"def compute_coefficients(X, Y):\n",
" Xmean = mean(X)\n",
" Ymean = mean(Y)\n",
" b1 = covariance(X, Xmean, Y, Ymean) / variance(X, Xmean) # slope\n",
" b0 = Ymean - b1 * Xmean # y-intercept\n",
" return (b0, b1)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"XYtest = np.array([[1, 1], [2, 3], [4, 3], [3, 2], [5, 5]]);\n",
"Xtest = XYtest[:, 0]\n",
"Ytest = XYtest[:, 1]\n",
"Xtestmean = mean(Xtest) \n",
"Ytestmean = mean(Ytest)\n",
"Xtestvar = variance(Xtest, Xtestmean) \n",
"Ytestvar = variance(Ytest, Ytestmean)\n",
"XYtestcov = covariance(Xtest, Xtestmean, Ytest, Ytestmean)\n",
"b0, b1 = compute_coefficients(Xtest, Ytest)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# Height x Weight\n",
"# https://onlinecourses.science.psu.edu/stat501/sites/onlinecourses.science.psu.edu.stat501/files/data/student_height_weight/index.txt\n",
"HW = np.array([[63, 127], [64, 121], [66, 142], [69, 157], [69, 162], [71, 156], [71, 169], [72, 165], [73, 181], [75, 208]])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 63, 127],\n",
" [ 64, 121],\n",
" [ 66, 142],\n",
" [ 69, 157],\n",
" [ 69, 162],\n",
" [ 71, 156],\n",
" [ 71, 169],\n",
" [ 72, 165],\n",
" [ 73, 181],\n",
" [ 75, 208]])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"HW"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"X = HW[:, 0] # the predictor, explanatory, or independent variable (x)\n",
"Y = HW[:, 1] # the response, outcome, or dependent variable (y)\n",
"XY = HW\n",
"b0, b1 = compute_coefficients(X, Y)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([63, 64, 66, 69, 69, 71, 71, 72, 73, 75])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([127, 121, 142, 157, 162, 156, 169, 165, 181, 208])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Y"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 63, 127],\n",
" [ 64, 121],\n",
" [ 66, 142],\n",
" [ 69, 157],\n",
" [ 69, 162],\n",
" [ 71, 156],\n",
" [ 71, 169],\n",
" [ 72, 165],\n",
" [ 73, 181],\n",
" [ 75, 208]])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"XY"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-266.534395365677"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b0"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.137581462708183"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b1"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"# Plot a line from slope (b1) and y-intercept (b0)\n",
"def plot(b0, b1, XY):\n",
" X = XY[:, 0]\n",
" Y = XY[:, 1]\n",
" plt.style.use('seaborn-whitegrid')\n",
" plt.scatter(X, Y, marker='o')\n",
" plt.plot(X, (b0 + b1 * X), '-', c='red')\n",
" b0Min, b0Max = np.min(Y - (b1 * X)), np.max(Y - (b1 * X))\n",
" plt.plot(X, (b0Min + b1 * X), ':', c='green', linewidth=0.2)\n",
" plt.plot(X, (b0Max + b1 * X), ':', c='green', linewidth=0.2)\n",
" plt.show()"
]
},
{
"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": {},
"output_type": "display_data"
}
],
"source": [
"plot(b0, b1, XY)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"class SimpleLinearRegression:\n",
" def __init__(self, train):\n",
" # the predictor, explanatory, or independent variable (x)\n",
" X = train[:, 0]\n",
" # the response, outcome, or dependent variable (y)\n",
" Y = train[:, 1]\n",
" self.b0, self.b1 = compute_coefficients(X, Y)\n",
" def __str__(self):\n",
" return \"Y = %f + %f X\" % (self.b0, self.b1)\n",
" def __repr__(self):\n",
" return self.__str__()\n",
" def predict(self, X):\n",
" return self.b0 + self.b1 * X\n",
" def y_intercept(self):\n",
" return self.b0\n",
" def slope(self):\n",
" return self.b1"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"LR = SimpleLinearRegression(XY)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"__main__.SimpleLinearRegression"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(LR)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-266.534395365677"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR.y_intercept()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.137581462708183"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR.slope()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Y = -266.534395 + 6.137581 X"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"138.545981173063"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR.predict(66)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"144.68356263577124"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR.predict(67)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([120.13323678, 126.27081825, 138.54598117, 156.95872556,\n",
" 156.95872556, 169.23388849, 169.23388849, 175.37146995,\n",
" 181.50905141, 193.78421434])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR.predict(X)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"def plot2(b0, b1, XY, XY_, XYScatterToFront = True):\n",
" X = XY[:, 0]\n",
" Y = XY[:, 1]\n",
" X_ = XY_[:, 0]\n",
" Y_ = XY_[:, 1]\n",
" plt.style.use('seaborn-whitegrid')\n",
" if XYScatterToFront:\n",
" plt.scatter(X_, Y_, marker='o', color='red')\n",
" plt.scatter(X, Y, marker='o')\n",
" else:\n",
" plt.scatter(X, Y, marker='o')\n",
" plt.scatter(X_, Y_, marker='o', color='red') \n",
" XX_ = np.concatenate((X, X_))\n",
" plt.plot(XX_, (b0 + b1 * XX_), '-', c='red')\n",
" YY_ = np.concatenate((Y, Y_))\n",
" b0Min, b0Max = np.min(YY_ - (b1 * XX_)), np.max(YY_ - (b1 * XX_))\n",
" plt.plot(XX_, (b0Min + b1 * XX_), ':', c='green', linewidth=0.2)\n",
" plt.plot(XX_, (b0Max + b1 * XX_), ':', c='green', linewidth=0.2)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 63. , 120.13323678],\n",
" [ 64. , 126.27081825],\n",
" [ 66. , 138.54598117],\n",
" [ 69. , 156.95872556],\n",
" [ 69. , 156.95872556],\n",
" [ 71. , 169.23388849],\n",
" [ 71. , 169.23388849],\n",
" [ 72. , 175.37146995],\n",
" [ 73. , 181.50905141],\n",
" [ 75. , 193.78421434]])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.column_stack((X, LR.predict(X)))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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EEJ4llxOEUIIDZMQF0IIDdPkBlje8Prrr/PJJ59gs9n4t3/7N3784x8D8P777/POO+/w7rvvqlzhwFw8j+XLl7N582YaGhqw2+08++yzmEwmtcvs18XzuPzyy3nssccwGo3Ex8ezZcsW/Px8+xxk9+7d/Pd//zcAbW1tmM1m0tPT2bJlC0ajkSVLlnD//ferXGXfeprDc889x1/+8hf8/f0ZP348zzzzDMHBvt27tqd5HDx4kPDwcF599VXy8vJ44YUXVK5yiBShZGVlKffcc49it9uVpqYm5aWXXlIURVG++eYb5ac//any4x//WOUKB6aneTz88MPKBx98oCiKomRmZir79+9Xt8gB6Gke//Ef/6EcOHBAURRFefDBB5WPP/5Y5SoH5/HHH1d27Nih3HLLLUpxcbHicDiUu+66Szl58qTapQ1Y5xxuvPFGpbq6WlEURXnuueeUt99+W+XKBqdzHoqiKAcOHFDuuOMOZf369SpXNXS+fSozQr744gtmzpzJfffdx7333sv1119PXV0dzz33HJs2bVK7vAHraR5HjhyhsrKSO++8k/fff58FCxaoXWa/eppHYmIi9fX1KIqC1WrF3187HyJPnDhBfn4+3//+92lvb8dkMmEwGFiyZAmZmZlqlzcgnXO4/fbbSU9PZ8KECQB0dHQQFBSkcnUD5zqP4uJi3n33XdatW6d2WcOinf8TvKiuro7y8nJee+01ysrKuPfee5k2bRqbNm3S1C/oxfNYu3YtFouF8PBw3nrrLbZt28b27dv5z//8T7VL7VNP81i3bh1PPPEEr776KmFhYSxcuFDtMgfs9ddf57777qOpqYnQ0NCu8ZCQEEpLS1WsbOA65wAQFRUFwEcffcThw4dZv369mqUNSuc8rFYrTzzxBM888wwFBQVqlzUsciYOREREsGTJEgIDA0lISKCiooKioiIef/xxHnzwQfLz89myZYvaZfbr4nkEBQVht9tZvtzZe3T58uWcPHlS5Sr719M8HnroITIyMvjwww9ZtWoVTz/9tNplDkhDQwNnz55l0aJFhIaGYrVaux6zWq2Eh4erWN3AuM6h01tvvcWf//xn/vSnP2nmRMd1HgcPHqS6upoNGzbwu9/9jqysLN544w21SxwSCXGcN9F//vnnKIpCZWUlkyZN4n/+539IT0/n+eefZ/r06aSlpaldZr8unkdLSwsrVqzg008/BSA7O5vp06erXGX/epqHyWTqOouNioqioaFB5SoHJjs7m2uvvRaA0NBQAgICKCkpQVEUvvjiC+bNm6dyhf1znQPAq6++yldffcVbb71FZGSkipUNjus8brzxRvbu3Ut6ejqbNm1i0aJF3H333SpXODRyOQW44YYbyM7O5rbbbkNRFB599FGMRqPaZQ1aT/NISEhg8+bN7Nixg9DQUH7/+9+rXWa/eppHcHAwGzZswN/fn4CAAJ588km1yxyQwsJCYmNju37+7W9/y0MPPYTdbmfJkiVceeWVKlY3MK5zOH/+PH/84x+57LLL+MUvfgHATTfdRGpqqpolDsjF74VeyIpNIYTQMLmcIoQQGiYhLoQQGiYhLoQQGiYhLoQQGiYhLoQQGiYhLoQQGiYhLoQQGiYhLoQQGvb/AbcK55ndYndmAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot2(LR.y_intercept(), LR.slope(), XY, np.column_stack((X, LR.predict(X))))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"newX = np.array([65, 66, 67, 70, 76, 80])\n",
"newYpredicted = LR.predict(newX)\n",
"newXY = np.column_stack((newX, newYpredicted))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([65, 66, 67, 70, 76, 80])"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newX"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([132.40839971, 138.54598117, 144.68356264, 163.09630702,\n",
" 199.9217958 , 224.47212165])"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newYpredicted"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 65. , 132.40839971],\n",
" [ 66. , 138.54598117],\n",
" [ 67. , 144.68356264],\n",
" [ 70. , 163.09630702],\n",
" [ 76. , 199.9217958 ],\n",
" [ 80. , 224.47212165]])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newXY"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 63. , 127. ],\n",
" [ 64. , 121. ],\n",
" [ 66. , 142. ],\n",
" [ 69. , 157. ],\n",
" [ 69. , 162. ],\n",
" [ 71. , 156. ],\n",
" [ 71. , 169. ],\n",
" [ 72. , 165. ],\n",
" [ 73. , 181. ],\n",
" [ 75. , 208. ],\n",
" [ 65. , 132.40839971],\n",
" [ 66. , 138.54598117],\n",
" [ 67. , 144.68356264],\n",
" [ 70. , 163.09630702],\n",
" [ 76. , 199.9217958 ],\n",
" [ 80. , 224.47212165]])"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.concatenate((XY, newXY))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Xa19evbs6Rnv378/Z86c8frg+UJ5eTlHjx5l0KBBGI3GWnc51TyOVcc5NDRUleMM3jVXeffdd/nqq6948803a52Jq32ca9b7xz/+0XPcRo0axddff+21vVaP8dq1a7njjjvq3H7QoEGeefsbbriBV155xSd1Vnn33XcZOnQoTzzxBPn5+dx3333Y7XbP+2f7LNf3/rnyyZl4v379+Omnn1AUhTNnzmA2m/nxxx9ZsWIFmZmZdOjQodY+H330EX//+98BOHPmDEaj0XP2rka9Dz74oGc5gaysLK644gqvffr27csPP/wAuO/a8fU98XXVHBsbS1ZWFsOHD69znyVLlvDee+8B7rOcxMREnwY4wNatW7nmmmsA94c6ODiYkydPoigK69evp3///l7bq32ca9YMsGzZMn7++WfefffdOi9MqX2cq9erKAq33norp0+fBrT5WYbaxxhg06ZNnumHmjIyMjxfRnX9m5padHS056w6JiYGh8NR55181TXWcW7wic3G8uKLL7J582YURWHy5Mk88cQTtG3b1vPtc/XVVzNx4kSmTp3KpEmTiI+P55lnniEvL4+AgACefPJJ+vbt64tS66w3Li6OWbNmERwcTHx8PLNmzSIyMpJx48bx2muv4XQ6eeqppygsLCQ4OJiXXnrJZ1869dU8bNgwbr75Zt5//32vb/mqms1mM1OmTKGyshKdTsfMmTO57LLLfFrzm2++SVBQkGc6bceOHfztb3/D6XQydOhQJk+eTGlpKRkZGSxZsoSioiKeeuopTCYTLVq04KWXXiI83Let+6rXXFRUxIgRI+jRo4fnDPx3v/sd6enpmjnONY/x+vXrWbRoEaGhoVx22WVkZGRgMpk0e4yrDBs2jJ9++snzuvrn4tSpU0ybNg2AsLAwZs+eXesaUFMymUxMmzaNwsJC7HY79957Lz179mTGjBnY7XaSk5OZPXs2Op2u0TPDZyEuhBCi8clStEII4cckxIUQwo9JiAshhB+TEBdCCD8mIS6EEH5MQlwIIfyYhLgQQvgxCXEhhPBj/w/H/exafyYyBAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot(LR.y_intercept(), LR.slope(), np.concatenate((XY, newXY)))"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAD0CAYAAABtjRZ7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8VOXd//9XMtk3AlmAEEIIyiagLCqWXcCorVasDbdBWm/11vqjolRxgYALoiKIVLlBpVX8BiqmxVZse2vd2UGCgkJA2RKSQMhkn30yc35/HBMzWQlk5pxJPs+/nGvOmfnkmMebk+tcS4CiKApCCCH8UqDWBQghhLhwEuJCCOHHJMSFEMKPSYgLIYQfkxAXQgg/JiEuhBB+LMiXX5abm+vLrxNCiE5j9OjRzbb7NMSh5ULq5OXlMWTIEB9V0zH8rWap1/v8rWZ/qxf8r+aLqbe1G2DpThFCCD8mIS6EEH5MQlwIIfxYqyHudDqZP38+mZmZ3HbbbXz66af1733wwQfMnDmz/nVOTg633norGRkZfP75596rWAghRL1WH2xu2bKF2NhYli9fTkVFBTNmzGDq1Knk5eXxt7/9jbq1s0pLS8nOzmbz5s3Y7XYyMzMZN24cISEhPvkhhBCiq2r1Tvz666/nwQcfrH9tMBioqKhgxYoVLFiwoL794MGDjBw5kpCQEKKjo0lJSeHIkSPeq1oIIQTQxp14ZGQkACaTiblz5/Lggw+ycOFCFixYQGhoaP1xJpOJ6Ohoj/NMJlOzn5mXl9dqQTabrc1j9MbfapZ6vc/fava3esH/avZWvW2OEz9z5gxz5swhMzOT1NRU8vPzeeqpp7Db7Rw7doylS5cyduxYzGZz/Tlms9kj1Btqa5ykv439BP+rWer1Pn+r2d/qBf+q2eQwcfr4aa+ME281xI1GI3fddReLFy/mmmuuAeBf//oXAIWFhfzhD39g4cKFlJaWsmrVKux2Ow6Hg+PHjzNw4MALKlYIITqLans1VqeV7uHdvfYdrYb4a6+9RnV1NWvWrGHNmjUArFu3jrCwMI/jEhISmD17NpmZmSiKwrx58zy6W4QQoiuxOq1U2auIDommZ1RPr35XqyGelZVFVlZWs+8lJyeTk5NT/zojI4OMjIyOrU4IIfyI1WnF5DARGhRKr6hePvlOn6+dIoQQnY3FacHsMBMeHE5CZIJPv1tCXAghLpCt1kaVrYrIkEifh3cdCXEhhGgnt+LmnPkcoYZQr/d5t0VCXAghzpOiKBgtRgB6RvYkICBA44okxIUQok1uxU2ZpYyAgADNuk1aIiEuhBAtcLldlFvLdRnedSTEhRCiEUVRKLeW41JcxIXHYQg0aF1SiyTEhRCigUpbJU6Xk25h3Qgx6H8lVglxIYQA9c7b7SI2LJbgsGCtyzlvEuJCiC6tLry7h3cnKND/ItH/KhZCiA5Qba/G4rQQFx5HsMF/7rwbkxAXQnQpFqcFk8NEZHCkz9Y38SYJcSFEl2B2mLE4LUQER5AYmah1OR1GQlwI0ak1DG+9jvW+GBLiQohOyeFyUGYpIyokqlOGd51WN0oWQgh/43K7OGc+R429ht7RvYkObX6rSJ/ZuBFSUxl82WWQmqq+7kByJy6E6BRq3bVUWCsIDAjUT5/3xo1w771gsRAAkJ+vvgaYNatDvkLuxIUQfs3pclJqLqXGXkNCZAJxEXFal/SThQvBYvFss1jU9g4id+JCCL9U121iCDAQHxGvi2VhPZSWqnfezSko6LCvkTtxIYTfKbOUUemoJC48jriIOH0FeGUlLFoEaWktH5OS0mFfJyEuhPAbRouRUnMpsWGxxIXpbHVBkwmefx7694dnn4Ubb4QXX4SICM/jIiJg6dIO+1rpThFC6J7RYkRRFOIi4ggM0Nm9p80Gr72mBvi5c/CLX8CSJXDFFer7SUmwcCFKQQEBKSlqgHfQQ01oI8SdTicLFiygqKgIh8PB/fffT1JSEkuWLMFgMBASEsKyZcuIj48nJyeHTZs2ERQUxP3338+UKVM6rEghRNdUbi3H4XKQGJmov/B2OuGtt9TALiyEqVPVO/CxYz2PmzULZs3iSF4eQ4YM6fAyWg3xLVu2EBsby/Lly6moqGDGjBkkJyezaNEihgwZwqZNm1i3bh333HMP2dnZbN68GbvdTmZmJuPGjSMkRP9r8Qoh9MfkMGFymOge1p0e4T20LseTywV/+Qs89RScOAHXXAP/7/+BRjeurYb49ddfT3p6ev1rg8HAypUrSUxUx2C6XC5CQ0M5ePAgI0eOJCQkhJCQEFJSUjhy5AgjRozwbvVCiE7F5DBhdVqJDNHh4lSKAu+9B4sXw+HDanfJP/+p9n1r+GC11RCPjIwEwGQyMXfuXB566KH6AN+/fz8bNmxg48aNbNu2jejoaI/zTCZTs5+Zl5fXakE2m63NY/TG32qWer3P32rWul6z04zdZSc8KJzwoHCMGNs8x2c1KwqR27aR8MorhB8+jD0tjdKXX6Zm+nQIDIQjR87rY7xVb5sPNs+cOcOcOXPIzMzkpptuAuDf//43a9eu5Y033qBHjx5ERUVhNpvrzzGbzR6h3lBbfUJ5Xuo38iZ/q1nq9T5/q1mrei1OC9X2avqF9iMiOKLtExrwSc1ffAFZWbBjhzrq5O23CZ01i2RD+0fFXEy9ubm5Lb7X6pMCo9HIXXfdxfz587ntttsAeP/999mwYQPZ2dn07dsXgBEjRpCbm4vdbqempobjx48zcODACypWCNH5OVwOzprO4nQ56RXVq90B7nV798L06Wo/98mTsHatesf9m9/ABQS4N7V6J/7aa69RXV3NmjVrWLNmDS6Xix9++IGkpCQeeOABAK688krmzp3L7NmzyczMRFEU5s2bR2hoqE9+ACGE/3C4HFTZqggKDNJfnzfAwYPqRJ0tWyAhAVauhN/9DsLDta6sRa2GeFZWFllZWef1QRkZGWRkZHRIUUKIzsVWa6PGXkOIIUSfy8IePaqONnn3XYiJUYcKPvggREVpXVmbZLKPEMJrHC4HFdYKwoLC9Bne+fnw9NPw9tvq3fYTT8Ajj0D37lpXdt4kxIUQHU5RFM6ZzxEUGERiZKK+1jYBOHNGnTn5xhvqCJMHH4THH4dEnSxh2w4S4kKIDlVqLgXQZ3gbjbBsGaxeDbW1cPfd6uiT5GStK7tgEuJCiIumKApGizq2W5fLwlZVqQ8pX35ZXajqjjvgySdhwACtK7toEuJCiAumKApl1jLcipuEiAT9hbfZrN51v/gilJfDbbepfeBDh2pdWYeREBdCXJAqWxXWWivxEfEEBeosSux2tb976VIoKVGnxi9ZAqNGaV1Zh9PZlRdC6F2NvQZbrY2okCi6hXXTuhxPtbWwfj088wycPg2TJ8PmzTBunNaVeY2EuBDivFTZqnC4HESHRmu/g3xjbjds2qT2cx87BlddBW++qS4Pq4MuHofL4bXPlhAXQrSqylaF3WWnW2g3/d15Kwq8/746y/K772DECPX1TTfpIrxttTaqbFVeXVZAQlwI0ay6xan0Gt6R27era5ns2wcDB6p34r/+tTruW2Nuxc058zlCDaH0jOrp1e+SEBeiC/vH10Us/+goxZVWkmLPMD99ENcPj6PaXk1YUJg+1zfZtg0WLiRl2zbo10/tNpk9G4K0j7OGQy17Rvb0yWgd7X9qIYQm/vF1EU+89y1WpwuA05UVzH9vG9bakdx+5SCNq2vGvn3qxJyPPoJevTiblUWvrCzQwWJ7DcPb18sLaP93hxBCE8s/OorV6cJFJbUYAQWnM5rVnxZpXZqn776DW2+FK69Ug3z5cjh+nIrMTM0D3K24KTWXYrQYSYhM0GR9GLkTF6KLKqyswBaYh0HpRoiSVt9eXGnVsKoGjh1TR5u88w5ER6uTdB56SF1lUGOKolBhq8DpchIfEY8hULs1xiXEhehiat21bMvfRkxMMVRfQQCe/bZJsRqvnV1QoE7MeestCAmBRx+F+fMhLk7bun7UcLROaLj2XTkS4kJ0EU6Xk12FuzAEGJicOpklNwz06BMHCA82MD9do/7ws2fh+efhtdfU13PmqEvD9tLHw9VKWyVOl5OY0BhdjdaREBeik2sY3hNSJtSPmLhlZB+ABqNTwpmfPqi+3WfKy9W1TV59VZ0u/9//rY77TknxbR0tqLBWUOuuJTYsluCwYK3LaUJCXIhOyq242VO4B7vLzri+4wg2NA2gW0b24ZaRfbTZKLm6GlatgpdegpoauP12dXedSy/1bR0tqLHXYHaa6R7WndAg7btNWiIhLkQnoygK35z9hgpbBVcmXam/KfIWC6xZAy+8AGVlMGOGutbJsGFaVwaok5xMDhMRwRH6HCffiIS4EJ3I/jP7MTlMjOg5gpFhI7Uux5PDAevWqSsLnjkD6enqXpZjxmhdGaCGt9lhJjw4nMRI/9nhR0JciE4gtziXGkcNo3uP1t+dd20tZGerQwTz82HCBHWK/MSJWlcG/BTeEcER+twHtA0S4kL4scOlhymqLuLKPlcSGxardTme3G7IyVHHen//vXrH/frrcN11ulicyulyUmYtIzI40i/Du06bIe50OlmwYAFFRUU4HA7uv/9+LrnkEh5//HECAgK49NJLefLJJwkMDGT16tV88cUXBAUFsWDBAkaMGOGLn0GILudU5SmOlR9jcPxghg7QwS41GzfCwoXqGO++feFXv4JPP4WDB9W+7r//HX75S12Et1txY7QYCQwI9Is+77a0GeJbtmwhNjaW5cuXU1FRwYwZMxg8eDAPPfQQV199NYsXL+bTTz8lKSmJvXv38te//pUzZ87wwAMPsHnzZl/8DEJ0GfmV+eRX5dM3pi/T0qZpXY5q40a49171gSWoQf7yy9Czp/rezJlg0G5GYx2X20W5tZyAgAC/6vNuS5shfv3115Oenl7/2mAwcOjQIa666ioAJk6cyI4dO+jfvz/jx48nICCApKQkXC4X5eXl9OjRw3vVC9FFFFQVcKLiBKmxqUzsp4++5HoLF/4U4A2FhkJmpu/raaTWXUuFtYLAgEC/7jZpSZshHhkZCYDJZGLu3Lk89NBDLFu2rH7CQGRkJDU1NZhMJmJjYz3Oq6mpaRLieXl5rX6fzWZr8xi98beapV7v66iaK+wV5FXkkRSZRGp0KlarlbwzHX8tLrTesMOHSc3Pp7lOEuX0aY548f9bWzW7FTeV9koCAgKIDYklICCAc5zzWj1t8dbv8Xk92Dxz5gxz5swhMzOTm266ieXLl9e/ZzabiYmJISoqCrPZ7NEeHd30KXlbEwo0mXRwkfytZqnX+y62ZovTws7TO+kR24O7r7i7AytrXrvrPXwYFi9W968MDFQfYjYSkJLi1f9vrdVcbi2n1l3LoPBButnE+WJ+J3Jzc1t8r82laI1GI3fddRfz58/ntttuA2Do0KHs2bMHgK1btzJmzBhGjRrF9u3bcbvdFBcX43a7pStFiHayOC1szd/KtyXfMi1tGqN662x39uPH1d10hg1T1/VevFhd6ySi0fZjERHqeHAfK7eWU2ouJSY0hsTIRN0EuDe1+RO+9tprVFdXs2bNGtasWQPAwoULefbZZ1m5ciVpaWmkp6djMBgYM2YMM2fOxO12s3jxYq8XL0RnYXKY2Fe8j8jgSP31eQMUFqorC775prqDzsMPw2OPQXy8+n5ExE+jU1JS1ACfNctn5RktRhRFoUd4D02XhdVCmyGelZVFVlZWk/YNGzY0aXvggQd44IEHOqYyIboAW62N3YW7CQ8KZ1K/ST7Zzqtdzp1TVxZcu1btMrnvPliwAJKSPI+bNcunoV2nwlqB3WUnMTKRwICuucdN5/9bQwgdcitudp3ehUtxtbg4laYqKmDFCvjjH8Fqhd/+Vu06SU3VujIAzA4zpdZS+gf3p3t4d63L0ZSEuBA+trtwN/ZaO1f1uYrwYI03YGispkYN7hUroKpKHeP99NMwSB97bpodZixOizpFPjyBsKAwrUvSnIS4ED6gKAq7CnfhdDkZmzxWd0ubBthssHKl2nViNMJNN6l94JdfrnVpgPrMwOq0Ehni31PkvUFCXAgv21e8jypbFeNTxusuvKmshO7dGVz3eto0dWXBq6/Wsqp6VqeVKnsVMaExEt4tkBAXwkuOGI9wuuo0Y5LG6K/f1mptOizw889h8mRNymms1l2L0WIkPCi8U6xv4k1d83GuEF50ouIEe8/tJSokiukDpusrwGtr1SGCDQM8LY28Q4d0EeBOl5NScynV9mp6RfXS1V6WeiV34kJ0kGPlxyiqLmJAjwFclXgVyTHJWpf0E0WBtDQ4deqntuBgdc2ToCDQeFkDh8tBla2KYEOwdJu0k9yJC3GR8ivz+fTEp4QaQpmUOklf4Q0waZI6Nb5hgFss6k47QdrexzldTkpMJVicFhIiE/S3JrofkDtxIS6Q0WLk6zNfk9IthalpU7Uup6lZs+Avf/Fsq6yEbtp3USiKQqmllMCAQBIjE/U3ycmPSIgL0U4V1goOlBwgNiyW6QOma11OU488ou4g31BxMfTurU09jdRNkY+PiO+ysyw7koS4EOfJaDFy6Nwhuod3Z3LqZK3LaWr5cnj0Uc+2H36ASy7Rpp5GSs2lAMRHxMuddweSEBeiDZW2Svaf2U98RDyTUidpXU5T69fDf/+3Z9v+/TBS+93uFUWhzFqGW3GTEJEg4e0FEuJCtMDhcrC9YDtRIVFMSZ2ivwD64AO4+WbPNh2N9a6yVWGttRIfEd8lloTVilxZIRpRFIVtBdsAmNRvkv6WNt2+HSZM8GzbvBluvVWbehoxOUxYnBaiQ6JlnLcPSIgL8SNFUdhesB0FhXF9x+kvvL/9FkaM8Gx74w34n//Rpp5Gauw12GptRIVEdaqNiPVOQlx0eYqisPP0TpxuJxP7TdTfiIlTp6B/f8+2Z59VN2HQgWp7NbZaGzGhMUSHNt2SUXiXhLjo0r4+8zVGi5EJ/Sbob1nTc+egZ0/Ptt//Hl59VZt6Gmm4OJXceWtHQlx0SUeMRyiqLuLyXpczsrf2ozg81NRATIxn2623qv3eOmCvtVNlryLUECqLU+mAhLjoUg6XHsZoMTIwbiCD4we3fYIv2e0Q1uivgauvhl27QAcjY6xOKyaHidCgULnz1hEJcdElHC49TImphMsSL2NowlCty/HkckFsLJhMP7X17q1uThyoff+81WmlxlFDeFC4LE6lQxLiolM7WXGSY+XHGJowVDfh/Y+vi1j+0VGKKyx8tn4O/c8VeB7gcKgrDGrM5XZRaiklLChM7rx1TEJcdEpnTWc5dO4QKd1SdLW+yT++LuKJ977ltY0LmXRyv+ebZnPTjRo0ULc4VQAB9Izsqb9JTsLDeYX4gQMHWLFiBdnZ2eTl5fHkk09iMBhITU1l6dKlBAYGkpOTw6ZNmwgKCuL+++9nypQp3q5diCaKa4o5Vn6MxMhEXa4saLj3HvL2fejRdvncd4jqncgOjQNcURSMFiOATJH3I22G+Lp169iyZQvh4equ3KtXr2bOnDlMmjSJhx9+mC+++ILhw4eTnZ3N5s2bsdvtZGZmMm7cOEJCQrz+AwgB6p13XmkefWL6MLHfRK3LaWrhQnjuOW5q0HT1/7eekuh4AKorrdrUhdptYrQZMVqM0ufth9p8apKSksKrDcalDhkyhMrKShRFwWw2ExQUxMGDBxk5ciQhISFER0eTkpLCkSNHvFq4EKDOEvz4+McYLUam9J/CwLiBWpfk6ZVX1JElzz1X33TtPa+R+tg/6wMcICk23OelKYrCnsI9fJn/Jd1CukmA+6k278TT09MpLCysf52amsozzzzD2rVriY6O5uqrr+bDDz8kOvqnmVqRkZGYGj5pbyCvjW2gbDZbm8fojb/V3BnqrXXXsq90H+FB4YzoMYIARwB5Zfr5mcL/8Q8Y6vkg9eS77/LvyFSKdhrBpdS3hxoCyBwe5bP/J4qi8H3V95TbyxnWfRi9Q3pjc/jX7wR0jt/jjtDuB5tLly5l48aNXHrppWzcuJEXXniB8ePHYzab648xm80eod7QkCFDWv38vLy8No/RG3+r2Z/rrXXXsvP0TgIDArlz6J3667f96CO4/nrPtv/8B6ZPpz8wB+iT9OPolEorSbHhzE8fxC0j+/ikvANnD1Blr2JC6gTiIuLq2/3tdwL8r+aLqTc3N7fF99od4t26dSMqKgqAxMRE9u/fz4gRI1i1ahV2ux2Hw8Hx48cZOFBnf9YKv+Z0Odl5eieGQAMTUiboL7z37IGxYz3bNm2CmTObHHrLyD4+C+0635z9hkpbJVf0ukL2sexk2h3izz77LPPmzSMoKIjg4GCWLFlCQkICs2fPJjMzE0VRmDdvHqGhod6oV3QxLreL/cb9nAs/x/iU8fpbWTAvr0m3Ca++St7Uqbq4SzxiPMLpqtOM6j2KK3pdoXU5wgvOK8STk5PJyckBYMyYMWzatKnJMRkZGWRkZHRsdaLLUhSFr89+TaWtksGxgxmdOlrrkjydPg0pKZ5tixbBM8+o/61xX21BVQHfl33PwLiBuhonLzqeTPYRuvPN2W+oslUxoucIuod319fDq7IyiI/3bLvnHli3Tpt6GjlddZqTlSdJik5iWto0rcsRPiAhLnQjtzgXk8PEyN4jiQmNafsEXzKb4cdnQfVuvBH+9S9t6mmksLqQH8p+oF9sP32OkxdeIyEuNPdtybeUmEu4MulK/W3n5XRC40lrw4fDgQO6WFmw3FpObnEuKd1SmNJfZkl3RRLiQjN1i1MNSxzG8J7DtS7Hk9utriR47txPbd27g9Goi5UF7bV2thVsIzYsVvq8uzgJceFzBVUFnKw4Sd9uffUXQIoCY8bA/kaLU9ntTe/INWCvtbOnaA9BgUFM7T9Vf0Mthc9JiAufqQvvlG4pTEqdpHU5Td1yC7z/vmdbTU3TvnANWJ1W9hbtJTQoVPq8hQcJceF1JaYSvj33LamxqfoM7zlzYM0az7Zz5yBB+7VEHC4Huwt3YwgwMKHfBP1t4iw0JyEuvMbsMLOrcBcJEQn6HO72zDPw5JOebadOQb9+mpTTkFtxs7doL7ZaG9ckX0NokEyeE82TEBcdzlZrY0/hHkKDQnUR3vU76fy4Vsn/1uzliuee8Dzo229h2DBtCmzkq6KvsDgtjE4aTVSI9l05Qt8kxEWHMTvM7CveR3hwuG66Tep20rE6XdxwZDtr33/B84AdO+BnP9OmuEb2FO7B7rIzJmkMEcHa7/Aj/IOEuLhoVqeVPUV7CA8KZ2K/iboaMbH8o6NccWw/72xa6NH+yG+XsmL9Ao2q8pRbnEulrZJr+l4j4S3aTUJcXDCX28Wuwl0oisK4vuMINmi/ua+H/fvZ8YTnFm1/+Pk83hs2lQBghTZV1fu+7HvyK/MZ1XuUx7KwQrSHhLi4IHsK92CttXJ1n6sJD/b9rjSt+uEHaLQU8pIpd/Pnq2bUv9ZiJ506pypPcaryFGnd0/Q3Tl74HQlxcd4URWF34W6cbidX9bmKsKAwrUvyVFwMfTzX6f7hN7/j5pRfYnW66tvCgw3MTx/k6+o4WXGS09WnSY1NZXLqZJ9/v+icJMTFedlbtBeTw8S4vuP0N9ytslKdEt/QHXdAdjaXAs9/3TE76TQe5XK+n1NYXchR41EG9BggE3VEh5MQF606XHqYouoirk6+Wn8rC1qtENHoQeC118Knn3o0dcROOg1HuQAUVVp54r1v6z+/ORXWCvYV7yM5JpmpaVObPUaIiyUhLpp1ouIEpypPMShuEEMHDG37BF+qrYXgRg9RL70Ujh712sqCyz866tElA2B1ulj+0dEmIV5jr2Hvub0M6zZM+ryF18kcXuHhePlxtuZvJSgwiGv7X0ufGN/uBelh40ZITWXwZZdBaips2KDOpmwY4GFhaqh//71Xl4YtrrS22V5pq+TLU19yrPwYVyVexegkne1GJDoluRMXgDpi4kTFCS7tcak++m03boR77wWLhQCA/HyYPdvzGKtVDXEfSIoNp6iZIE+KDafaXk1ucS6xYbH14+TzKnW0G5Ho1CTEu7hz5nMcOHuA/t37c23/azvscy/0IWC9hQvBYmn+vcpK6ObbzSPmpw/y6BMHCAtWuH60kcOlh5mUOkkWpxKakBDvoqpsVeSeySUuPK7D+20v5CFgE/n5zbcHBPg8wOGnupd/dJSiSgvRMcf5r6uSeXTKDP1NchJdioR4F1NuLWdf6T6Gdx/eoXfeDbXnIWATy5bB44+3/H7jHeZ96JdXJBEfdxK3EsQ1yf+fhLfQhfMK8QMHDrBixQqys7MpKysjKyuL6upqXC4XL774IikpKeTk5LBp0yaCgoK4//77mTJF9vvTkwprBd+c/Ya4iDjGJIxhSK8hXvuu83kI2MRbb8Fdd3m2hYWBzfbT64gIWLq0AypsH0VR2FW4C3utnYn9JmIINPi8BiFa0maIr1u3ji1bthAerk5TXr58OTfddBM33ngju3fv5sSJE4SHh5Odnc3mzZux2+1kZmYybtw4QnSwnVVXZ6u1saNgB93CujE5dbL60K3cuw/dWnsI2MSWLfDLX3q2ffEFTJqkPtxcuBCloICAlBQ1wGfN8k7RLfjm7DeUmksZnzJef8sLCMF5DDFMSUnh1VdfrX+9f/9+SkpKuPPOO/nggw+46qqrOHjwICNHjiQkJITo6GhSUlI4cuSIVwsXrVMUha35W/mq6Csmp05mTNIYn60uOD99EOHBnnerTaa6b9um9m83DPC//13d43LSj8vYzpoFp05x5NAhdbMGHwb492Xf8+mJT0mKTmL6gOkS4EK32rwTT09Pp7CwsP51UVERMTExrF+/ntWrV7Nu3TpSU1OJjo6uPyYyMhKTydTs5+XltX4XaLPZ2jxGb/RUs6Io5BpzAbgi7gqCAoP4/uj3Hsd4u95BYfD7sT14e38FpeZaEiKD+O2o7gwKq+bEP74ibcYMj+OLlyyh6le/Ul80U5cvr+/J6pOU2cvoG9mXpIgkygrKKKOs3Z+jp9+J8+Fv9YL/1eytetv9YDM2NpZrr1UfiF177bW8/PLLDBs2DLPZXH+M2Wz2CPXaCibTAAAbZElEQVSGhgxpvS82Ly+vzWP0Rg81K4rCjtM7cLldzJowq9Xhbr6o96itiOBvTUAtwcHBXOquZcjQRjM/n3sOnniCJCCplc/yRb3fl31PUXURI5NH0ju690V/nh5+J9rD3+oF/6v5YurNzc1t8b12h/jo0aP58ssvueWWW/jqq6+45JJLGDFiBKtWrcJut+NwODh+/DgDGy0FKrxDURRyz6ibCkzsN5EQg/bPIRoOMYw3V7Bj2S88D5g7F/74R22Ka+R01WnyjHkMjh/MlP7yMF74n3aH+GOPPUZWVhabNm0iKiqKl156iW7dujF79mwyMzNRFIV58+YRGqqzle46obzSPIpqihjdezTdw7u3fYKPLP/oKAZTDadWZXi0fzZsItd++6XP62lu4tG4gSEcLDlIn5g+XDfgOp/XJERHOa8QT05OJicnB4A+ffrw1ltvNTkmIyODjIyMJu2i4x0xHqHEVMLAuIEMSdDZn5N2e5PddHKTBvOr2SsIAE76uJzGE48KKot58L1cHp42mrmTZGVB4f9kso8fySvNo8RcwpD4IQyOH6x1OZ5cLoiOVtcz+VFxdDw/u/+t+oWptNhNp27ikYtKnIEFGJTuGJxDeXcXzNXHXs5CXBQJcT9wouIEx8uPMyxxmP7uvBUFBg9WVxFsYPgTH1Dj/mlIo1a76RRWlmMLPIJBiSXMPaK+vdWJR0L4EVmxR8fO1JzhkxOfoCgK0wdM75BREx1q+nQIDPQMcLMZFIUlvx5Jn9hwAoA+seE8f+vwi96YoT1cbhefnfyMmJgzhLmvIETp7/G+lntsCtGR5E5ch86aznLUeJTEyESmpU3Tupym7rwT3n7bs6283GOLtI7YTedCuBU32wu2E0AAk1Mns+SGpqsPavVXgRDeICGuI2dqznC07Ci9o3ozKVWHHbZPPAEvvODZVljYZHNiLbjcLnac3kEAAUxImVA/O7Xh6oMXu8emEHokIa4DlbZKvir6ij4xffS5C/qqVTBvnmfb0aOgg7kAbsXNnsI92GptTOg3gaDApr/SWv1VIIQvSIhryOlysjV/K9Gh0UxLm+aztU3O24YNTXfT+eorGDNGm3oaUBSFgyUHKbWUcnWfq4kObX6GsBCdnYS4Bhr+6X9t/2v1F97/939w442ebR9/DNP00T//bcm3lFnLGJY4jMt7Xa51OUJoSkLch2rdtew8vZPAgECPflvd2L0brrnGs+3dd0Enk7gOnD1Apa2S4T2HM7zncK3LEUIXJMR9wOV2satwF27FzfiU8frbi/HwYbjsMs+2NWvg/vu1qaeRY1XHKD5RzBW9rpA7byEakRD3IkVR2H9mP5W2Sn7W92f6W5O6oAD69fNse/JJeOopTcppLL8yn+/LvicqOIopabI4lRDNkRD3kgNnD1Bhq+DynpfranEqAENFRf1U+Hr33guvv65NQY0UVhdyvPw4fWL6MH3AdL9aM1oIX5MQ72Bfn/maGkcNI3qO4PIwnf3pbzJBdDQeAwNvukndIk0HTled5kTFCZJjkvU5Tl4IHZIQ7yAHzh6gzFrG6N6j6RbWTetyPDkc0Hhp4JEjITe36R25BkrNpRwoOUC/bv0kvIVoJwnxi2S0GNlxdgc39b1Jfw/d3G5ISFCnxNeJiyPvyy8Z0vhBpgasTivbC7YTHxGvz+UFhPADEuIXyOwwY3FaiAiOYFyvcfSM6qltQT/uDE9BAfTtq7YVFHgeY7dDSEiz+1j6ksPlYNfpXQQbgpk+YLqmtQjh7yTE26kuvCNDIkmITNC6HNXGjeqDSYtFfd04vGtqICrK93U1Yqu1sbdoL8GBwdJtIkQHkRA/Tw6Xg3JrOZHBOgrvOgsX/hTgDSUnw+nTvq+nEXutnd2Fuwk2BOtzkpMQfkxCvA0ut4syaxlBgUH0iuqldTlNPfUU5Oc3/15RkU9LaaxucSqHy8E1fa/RxSbOQnQ2EuItcLqcVNoqMQQaSIxM9Op3NbeRb5ur7q1ZA3PmtH5MSkrHFdkOiqKQeyYXk8PEmKQxRIVo35UjRGclId6Iw+WgylZFUGCQT7pNGm/kW1Rp5Yn3vgVoPshzcmDmTM+2p56CF1/07FKJiIClS71Udcv2Fu3FVmtjVO9REt5C+ICE+I8adpvER8T7rN+2biPfhqxOF8s/OuoZ4h9/DNdd53nyv/8NN9yg/vcll/w0OiUlRQ3wWbO8XP1P9hXvo9pezdjksUQER/jse4Xo6s5rJaYDBw4wu9G60h988AEzG9wR5uTkcOutt5KRkcHnn3/esVV6mdFipNxaTlx4HD3Ce/j0wVtLG/bWt+/bp07IaRjgGzaoGxTXBTiogX3qlDo2/NQpnwV4XmkeHx//mAHdB3Bt/2slwIXwsTbvxNetW8eWLVsID/9p8aa8vDz+9re/oSgKAKWlpWRnZ7N582bsdjuZmZmMGzeOkBB9P8gyWowoikJcRJxmKwsmxYZT1EyQj3Uam86mfPlleOghH1XWulOVpzhRcYKBcQNlrLcQGmozuVJSUnj11VfrX1dUVLBixQoWLFhQ33bw4EFGjhxJSEgI0dHRpKSkcOTIEe9U3AFKzaWUmkuJC48jITJB06Vh56cPIjxAqX/ds8bIqWW/4J2Vd/500OOPq3feOgjwkxUn2Zq/tX5Di+SYZK1LEqJLa/NOPD09ncLCQgBcLhcLFy5kwYIFhDZYi8NkMhEd/dP2WJGRkZhMpmY/r60V6Ww2m9dWrau0V1Kr1BIXGkdAQABGjB3yuRdT85Wf/JPn/v0fXh91Mx+un+vxXuUtt3DmuefUFx14TS6k3mJzMQWmAvpG9aVPZB8sFgt5Z3wz89ObvxPe4m81+1u94H81e6vedj3YPHToEPn5+Tz11FPY7XaOHTvG0qVLGTt2LGazuf44s9nsEeoNDRkypNXvyMvLa/OY9jI5TJgcJtLC0ggNCm37hHa6qJrT05lx+jQzDn7i2d6vH7F//zuxF19eE+2pt8xSxv4z+0lJSGFq/FQvVNM2b/xOeJu/1exv9YL/1Xwx9ebm5rb4XrtCfMSIEfzrX/8CoLCwkD/84Q8sXLiQ0tJSVq1ahd1ux+FwcPz4cQbqYCd0k8OE1WklMiRSfxN1nE51HZOWNJ4672Mmh4m9RXuJDYuVPm8hdKxDhhgmJCQwe/ZsMjMzURSFefPmeXS3+FqNvQZbrY2okCj9TZF3u9UFqoqLWz9Oo4k6VbYqDpQcICI4gmv7X6tJDUKI83deIZ6cnExOTk6rbRkZGWRovKGu2WGmxlFDt9Bu+gtvgLFjYc8ez7a33lJnXmo8UafaXk1ucS7dwrrJ+iZC+JFOMdmnbnGqiOAI/XWbANx2G2ze7NlWVQUxMep/BwdrNlHHXmtn5+mdRARHMCl1kv42cRZCtMqvQ9xea6faXk2wIVif4T13LjQYnglASQkkNlqLZdYsn86uBHV9kx2nd+BW3IxPGU+wIdin3y+E6Bh+GeK2Whs19hpCDCH67DZ57jn1zrqhEyegf39t6mlAURT2G/dTWlDK2OSxsrKgEH7OL0Pc6XLqI7x/3E1ncF03yLRp8Oc/ex5z4ACMGKFNfQ0oisLO0zupddcyoscIhvcbrnVJQogO4JchHh3a/Bh0n2qwm04AqGt6NwzwrVthwgStqvOQW5xLha2CCSkTCA0K9asJEkKI1vlliOtCS7vpJCTAuXO+r6cZR41HKagqYFTvUYyOGK11OUIIL5AQvxCVlS3vpmPsmKn8F+OHsh8orinmkh6XyEQdITo5GU/WHiaT+tCytQeUGk3SAfi+7Hu+OPUFUSFRTEqdRJ+YNnYHEkL4PQnx82GzqcvApqWp3Sjjx6tjuSMarZ2t0W46+ZX5fHLiEyKCI5icOpne0b19XoMQQhvSndIapxPefBOWLFE3HZ46FZ59Vp15CdCvHyxciFJQQIAGu+mUmks5UHKAvjF9mZY2zWffK4TQDwnx5rhc8Je/qHtXnjgB11wD2dkwZYrncT9O0jni49XUSs2lHC49TI/wHhLeQnRxfhXiF7QrfHu43fDee7B4sbp+9xVXwD//CTfe2HSXHQ2cM5/jcOlhEiMTmZQ6SetyhBA64Dch3u5d4dtDUeD//g+ysuDrr2HwYHVX+V/9CgK1f2xQZaviq+Kv6BXVi8mpk7UuRwihI9on1HlqbVf4i/LFF+qknJ//XB06+Pbb8N138Otfax7gte5aPj3xKUeMR5jafyrDEodpWo8QQn/85k68zV3h22vvXnWkySefQFISrF0Ld93V+kYNPuJW3Gwv2E4AAUzpP0VWFhRCtMhvQrylXeGTYsPb90EHD6rdJh98APHx8NJLcP/9EN7Oz/ECl9vFjtM7CCBA1vQWQpwXvwnx+emDPPrEAcKDDcxPH3R+H3D0KDz5JLz7LnTrpg4bfPBBaGEvUF9yK252nd6F0+1kQsoEDIEGrUsSQvgJvwnxuoeX7R6dkp8PTz+t9nWHh8OCBfDII9C9uw+qbp2iKHxz9hvKrGX8rO/PiAiOaPskIYRowG9CHNQgP++RKGfOqJNv3nhDfUA5dy488UTTDRk0cujcIc6ZzzG853BG9h6pdTlCCD/lVyF+XoxGWLYMVq+G2lq4+261Dzw5WevKADhYcpBKWyVDE4ZyWeJlWpcjhPBznSfEq6pg5Up1jROTCe64Q+0DHzCgyaFenzTUjEPnDlFiLuHynpczoqf2m0QIIToH/w9xs1m9637xRSgvVzclfvppGDq02cO9OmmoGScrTvJD+Q8MSxwmd95CiA53XgOQDxw4wOzZswHIy8sjMzOT2bNnc/fdd2P8cf3snJwcbr31VjIyMvj888+9V3Edu13dhHjAAHj8cXVRqtxc+OtfWwxw8OKkoUaKqov4/OTnuBQX1w24jqTopA79fCGEgPO4E1+3bh1btmwh/Mdx1EuXLmXRokUMGTKETZs2sW7dOu655x6ys7PZvHkzdrudzMxMxo0bR4g3Js64XLB+PTzzDBQUwOTJsHkzjBt3Xqd3+KShRgqrCzlRcYKk6CSm9J/S9glCCHER2rwTT0lJ4dVXX61/vXLlyvoV+1wuF6GhoRw8eJCRI0cSEhJCdHQ0KSkpHDlyxDsVf/AB3HMP9OoFH38Mn3123gEOLU8OavekoUbOms7y2cnPsNXamNhvIpf0uOSiPk8IIc5Hm3fi6enpFBYW1r9O/HGI3v79+9mwYQMbN25k27ZtRDeYNBMZGYnJZGr289rapNdms7V6TEC/foRs3ox98GB1ZcF2/mOROTyKV3basLuU+rZQQwCZw6MuaANhS62FvcV76V3Zm0Gxg3DanOSV6Hsj4rausd74W73gfzX7W73gfzV7q94LerD573//m7Vr1/LGG2/Qo0cPoqKiMJvN9e+bzWaPUG+orXW3885nbe6RFz6uesgQ6JN08aNTXG4X5dZyAgICiAiK8Ol64hfrvK6xjvhbveB/NftbveB/NV9Mvbm5uS2+1+4Qf//993n33XfJzs4mNjYWgBEjRrBq1SrsdjsOh4Pjx48zcODACyrWF9o1aagRp8tJpa0SQ6CBhMgEAEop7cjyhBDivLUrxF0uF0uXLqV379488MADAFx55ZXMnTuX2bNnk5mZiaIozJs3j9DQUK8UrBWX20WZtQxDgIH4iHhZnEoIoQvnFeLJycnk5OQAsHfv3maPycjIICMjo+Mq05EySxkuxUVceJwsTiWE0BX/n+zjRWWWMtyKm+7h3QkKlEslhNAfSaZmGC1GFEUhLiJONmQQQuiahHgD5dZynC4nCZEJEt5CCL8gIQ6YHCZMDhPdw7oTGt65HsgKITq3Lh3iZocZi9NCRHAEvaJ6aV2OEEK0W5cMcZPDhNVpJTIksn6stxBC+KMuFeIWp4Uaew3RodES3kKITqFLhLjT5aTMWkZ4UDg9o3pqXY4QQnSYTh3iDpeDKlsVQYFB0ucthOiUOmWI22vtVNurCTYES7eJEKJT61Qh7nA5qLBWEBYUJuEthOgSOkWIK4rCOfM5ggKDSIxMlMWphBBdht+HeKlZXQZWZlkKIboivwxxRVEwWtQNmmVZWCFEV+aXIW60GCW8hRACPw1xeWgphBAq6UQWQgg/JiEuhBB+TEJcCCH8mIS4EEL4MQlxIYTwYxLiQgjhx84rxA8cOMDs2bMByM/P5/bbbyczM5Mnn3wSt9sNwOrVq7ntttv4r//6Lw4ePOi9ioUQQtRrM8TXrVtHVlYWdrsdgOeff56HHnqIv/zlLyiKwqeffsqhQ4fYu3cvf/3rX1m5ciVPP/201wsXQggBAYqiKK0d8NFHHzFo0CAeffRRcnJymDBhAlu3biUgIIBPPvmEHTt20L9/f2w2G/feey8At9xyC2+++SY9evTw+Kzc3Fzv/SRCCNGJjR49utn2NmdspqenU1hYWP9aUZT66e6RkZHU1NRgMpmIjY2tP6auvXGIt1SEEEKIC9PuB5uBgT+dYjabiYmJISoqCrPZ7NEeHR3dMRUKIYRoUbtDfOjQoezZsweArVu3MmbMGEaNGsX27dtxu90UFxfjdrub3IULIYToeO1eAOuxxx5j0aJFrFy5krS0NNLT0zEYDIwZM4aZM2fidrtZvHhxi+e//vrrfPbZZzidTm6//XaGDRvGkiVLMBgMhISEsGzZMuLj4z3OueWWW+rv7JOTk3n++efbW/YFa1zv0KFD+d3vfkdqaioAt99+OzfeeGP98Tabjfnz51NWVkZkZCTLli3z+T9ojWveuXMnRqO6dG9RURGXX345L7/8cv3xiqIwceLE+p/piiuu4OGHH/ZJre+99x5///vfAbDb7eTl5ZGdnc3SpUsxGAyMHz+e3//+9x7nlJeX88gjj2Cz2UhMTOT5558nPDzcJ/W2VPOKFSt48803CQoKIi4ujmXLlnnUpLdr/NJLL/Hiiy/Su3dvAB544AGuuuqq+nO0vMbN1ZuWlkZMTAwAJ06cYMaMGTzyyCP151RWVpKens7AgQMBmDZtGr/97W99Ui+A0+nk8ccfp6ioiMDAQJYsWUJQUBCPP/44AQEBXHrppTz55JMePRkdlhWKD+3evVu57777FJfLpZhMJuWVV15RZs2apRw+fFhRFEV55513lOeee87jHJvNpvzyl7/0ZZn1mqs3JydH+fOf/9ziOW+++abyyiuvKIqiKP/85z+VJUuW+KpcRVGar7lOZWWlcvPNNyslJSUe55w6dUq57777fFpnc5566ill06ZNys0336zk5+crbrdbueeee5TvvvvO47glS5YomzdvVhRFUV5//XXlrbfe0qBaVV3N1113nVJaWqooiqKsWLFCefvttz2O09s1XrlypfLhhx+2eJxernFdvXUKCgqUGTNmKCaTyeO4HTt2KM8884yvy6v38ccfK3PnzlUURVG2b9+u/P73v1fuu+8+Zffu3YqiKMqiRYuU//znPx7ndFRW+HSyz/bt2xk4cCBz5szhd7/7HZMnT2blypUMGTIEAJfLRWhoqMc5R44cwWq1ctddd/Gb3/yGb775RtN6v/vuO7744gtmzZrFggULMJlMHufk5uYyYcIEACZOnMiuXbt8Vm9LNdd59dVXueOOO0hMTPQ459ChQ5SUlDB79mz+53/+hxMnTvi0ZoBvv/2WY8eO8fOf/xyHw0FKSgoBAQGMHz++yTVsfI137tzp83rhp5pnzpxJdnZ2/V+QtbW1TX6P9XSNZ86cyaFDh9i8eTOZmZm88MIL1NbWehyrh2vcsN46S5cuZf78+URGRnoc+91333Ho0CHuuOMO5s6dy7lz53xaa//+/XG5XLjdbkwmE0FBQRw6dKj+r5vmrmFHZYVPQ7yiooLvvvuOP/7xjzz99NM88sgjJCSoa4Pv37+fDRs2cOedd3qcExYWxt13382f//zn+nMa/8L5st4RI0bw6KOPsnHjRvr27cv//u//epxjMpnqu37qRun4UnM1K4pCWVkZu3bt4tZbb21yTkJCAvfeey/Z2dncd999zJ8/36c1g9oFNGfOHEwmE1FRUfXtzV1Dra9xnbqagfp/GD/++GP27NnDLbfc4nGsnq4xwLhx41i0aBEbN27EYrGwadMmj2P1cI0b1gvqDZ3ZbOaaa65pcmxaWhpz585lw4YNTJs2jWeffdaXpRIREUFRURE33HADixYtYvbs2c2O5Guoo66xTzeFiI2NJS0tjZCQENLS0ggNDaW8vJw9e/awdu1a3njjjSZ9Qv3796dfv34EBATQv39/YmNjKS0tre/L83W9kydPJi4uDoDp06ezZMkSj3MajtSpG73jSy1d4w8//JBf/OIXGAyGJucMGzasvn3MmDGUlJR4/AJ6W3V1NSdOnGDs2LGYTKYmI50aX8O6axwWFqbJNQbPmuusX7+eDz/8kD/96U9N7sT1dI0BfvWrX9Vft6lTp/LRRx95HK/1NW7u+m7ZsoVf//rXzR4/duzY+j776dOn88orr/ikzjrr169n/PjxPPzww5w5c4bf/va3OJ3O+vdb+z1u6f3z5dM78dGjR7Nt2zYURaGkpASr1crWrVvZsGED2dnZ9O3bt8k5f/vb33jhhRcAKCkpwWQy1d+9a1HvvffeW7+swK5du7jssss8zhk1ahRffvkloI7e8fXY+OZqjo2NZdeuXUycOLHZc1avXs3bb78NqHc7SUlJPt367quvvuJnP/sZoP5iBwcHU1BQgKIobN++nTFjxngcr/U1blwzwNq1a9m3bx/r169v9uGUnq6xoijcfPPNnD17FtDn73Hj6wuwe/fu+u6HxrKysur/IWru5/G2mJiY+rvqbt26UVtb2+xIvoY66hq3OWOzo7344ovs2bMHRVGYN28eDz/8ML17967/V+jKK69k7ty5PProozz00EPEx8fzxBNPUFxcTEBAAI888gijRo3SrN4ePXqwZMkSgoODiY+PZ8mSJURFRXHXXXfx2muv4XK5eOyxxygtLSU4OJiXXnrJZ//otFTzhAkT+PnPf84777zj8a99Xc1Wq5X58+djsVgwGAwsXryYAQMG+KzeP/3pTwQFBdV3pX3zzTc899xzuFwuxo8fz7x586isrCQrK4vVq1djNBp57LHHMJvNdO/enZdeeomIiAif1du4ZqPRyOTJkxk6dGj9HfgNN9xAZmambq/x9u3bWbVqFWFhYQwYMICsrCzMZrNurnHjegEmTJjAtm3b6l83/J04ffo0CxYsACA8PJxnn322ybMfbzKbzSxYsIDS0lKcTie/+c1vGDZsGIsWLcLpdJKWlsazzz6LwWDo8KzweYgLIYToOLIUrRBC+DEJcSGE8GMS4kII4cckxIUQwo9JiAshhB+TEBdCCD8mIS6EEH5MQlwIIfzY/w9mwzSRusC6bwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot2(LR.y_intercept(), LR.slope(), XY, newXY)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def compute_root_mean_squared_error(Ypredicted, Yactual):\n",
" return sqrt(np.sum((Ypredicted - Yactual) ** 2) / len(Ypredicted))"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([127, 121, 142, 157, 162, 156, 169, 165, 181, 208])"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Yactual = Y\n",
"Yactual"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([120.13323678, 126.27081825, 138.54598117, 156.95872556,\n",
" 156.95872556, 169.23388849, 169.23388849, 175.37146995,\n",
" 181.50905141, 193.78421434])"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Ypredicted = LR.predict(X)\n",
"Ypredicted"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7.729074667827609"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compute_root_mean_squared_error(Ypredicted, Yactual)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RMSE = 7.7291\n"
]
}
],
"source": [
"print(\"RMSE = %.4f\" % compute_root_mean_squared_error(Ypredicted, Yactual))"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"def classify(LR, x, y):\n",
" # https://math.stackexchange.com/questions/757591/how-to-determine-the-side-on-which-a-point-lies\n",
" # if you need more precision in comparison, check this: https://floating-point-gui.de/errors/comparison/\n",
" EPS = 0.000000000001\n",
" y_predicted = LR.predict(x)\n",
" if (fabs(y - y_predicted) < EPS):\n",
" return 0\n",
" if (y > y_predicted): \n",
" return 1 # above the line\n",
" else: # (y < y_predicted)\n",
" return -1 # below the line"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-1"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"classify(LR, 61, 104)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"classify(LR, 61, 124)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"classify(LR, 61, 107.85807385952211)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot2(LR.y_intercept(), LR.slope(), XY, np.array([[61, 104], [61, 124], [61, 107.85807385952211]]))"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ZGQkzc3N7Ny5k9WrV/Pmm2+SlJSkdswep+etr69Hp9Px1FNPYbPZOHr0KIWFhSxbtkztqF7fW6fTyfz58wGYP39+wJxf9Jb1F7/4BZs3b2bixIkUFxfzu9/9jieffFLtqD3a2to4duwYs2fPxmw2Y7FYep6zWCzEx8ermM5T36zd1q5dywcffMB//dd/BdQBSN+s//d//4fRaGTJkiW0tbXR2NjIm2++yb333qt2zHMaVqdTZsyYwbZt21AUhYaGBjo7O9m6dSvr1q2jqKiIcePGqR3Rw+l509LS+Otf/0pRURGrVq0iOzs7IAocvL+3X/va1/j0008B2LVrF9nZ2SqndPOWNSMjo+foNjU1lba2NpVTetq1axdXXXUVALGxsYSHh1NVVYWiKGzfvp2ZM2eqnLBX36wAq1evZvfu3axduzagDpLAM+sNN9zApk2bKCoqYunSpcyePTvgCxyG2ZH4ddddx65du7jttttQFIUnnniCn//854wePbrnHNjll1/OQw89pHJSN295dTqd2rG88pZ1woQJLF++nPXr1xMbG8uLL76odkzAe1a9Xs+SJUsICwsjPDycZ555Ru2YHioqKhg7dmzP49/85jf84he/wOl0MmfOHC655BIV03nqm9VkMvGHP/yByZMn85Of/ASAG2+8kYKCAjUj9jj9fQ1GsmJTCCGC2LA6nSKEEFojJS6EEEFMSlwIIYKYlLgQQgQxKXEhhAhiUuJCCBHEpMSFECKISYkLIUQQ+//266LbUGA9qwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot2(LR.y_intercept(), LR.slope(), XY, np.array([[61, 104], [61, 124], [61, 107.85807385952211], [67, 144.68356264], [67, 128]\n",
", [67, 148]]))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1, -1, 1, 1, 1, -1, -1, -1, -1, 1])"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.array([classify(LR, xy[0], xy[1]) for xy in XY])"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1, 63, 127],\n",
" [ -1, 64, 121],\n",
" [ 1, 66, 142],\n",
" [ 1, 69, 157],\n",
" [ 1, 69, 162],\n",
" [ -1, 71, 156],\n",
" [ -1, 71, 169],\n",
" [ -1, 72, 165],\n",
" [ -1, 73, 181],\n",
" [ 1, 75, 208]])"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.array([(classify(LR, xy[0], xy[1]), xy[0], xy[1]) for xy in XY])"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"126.27081824764667"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR.predict(64)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"138.545981173063"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"LR.predict(66)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"def convert_radians_to_degree(x):\n",
" return x * 57.2958\n",
"\n",
"def convert_degree_to_radians(x):\n",
" return x * 0.0174533"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.409284901943093"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"atan(LR.slope())"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"80.74610588475107"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"convert_radians_to_degree(atan(LR.slope()))"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"# Latitude x Skin Cancer\n",
"# https://onlinecourses.science.psu.edu/stat501/sites/onlinecourses.science.psu.edu.stat501/files/data/skincancer/index.txt\n",
"LSC = np.array([[33.0, 219], \n",
" [34.5, 160], \n",
" [35.0, 170], \n",
" [37.5, 182], \n",
" [39.0, 149], \n",
" [41.8, 159], \n",
" [39.0, 200], \n",
" [39.0, 177], \n",
" [28.0, 197], \n",
" [33.0, 214], \n",
" [44.5, 116], \n",
" [40.0, 124], \n",
" [40.2, 128], \n",
" [42.2, 128], \n",
" [38.5, 166], \n",
" [37.8, 147], \n",
" [31.2, 190], \n",
" [45.2, 117], \n",
" [39.0, 162], \n",
" [42.2, 143], \n",
" [43.5, 117], \n",
" [46.0, 116], \n",
" [32.8, 207], \n",
" [38.5, 131], \n",
" [47.0, 109], \n",
" [41.5, 122], \n",
" [39.0, 191], \n",
" [43.8, 129], \n",
" [40.2, 159], \n",
" [35.0, 141], \n",
" [43.0, 152], \n",
" [35.5, 199], \n",
" [47.5, 115], \n",
" [40.2, 131], \n",
" [35.5, 182], \n",
" [44.0, 136], \n",
" [40.8, 132], \n",
" [41.8, 137], \n",
" [33.8, 178], \n",
" [44.8, 86], \n",
" [36.0, 186], \n",
" [31.5, 229], \n",
" [39.5, 142], \n",
" [44.0, 153], \n",
" [37.5, 166], \n",
" [47.5, 117], \n",
" [38.8, 136], \n",
" [44.5, 110], \n",
" [43.0, 134]])"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"XY = LSC\n",
"LR = SimpleLinearRegression(XY)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot(LR.y_intercept(), LR.slope(), XY)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-1.4050410100541546"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"atan(LR.slope())"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-80.50294870386084"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"convert_radians_to_degree(atan(LR.slope()))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment