diff --git a/MultipleLinearRegression(Scratch).ipynb b/MultipleLinearRegression(Scratch).ipynb new file mode 100644 index 0000000..eebc1c6 --- /dev/null +++ b/MultipleLinearRegression(Scratch).ipynb @@ -0,0 +1,429 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "MultipleLinearRegression(Scratch).ipynb", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "ua_-Fe0hb2Ki" + }, + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import seaborn as sb" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "iPlllORIcLx0", + "outputId": "7a450769-f98a-461c-cab1-ee85e9331e48", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 224 + } + }, + "source": [ + "dataset = pd.read_csv('kc_house_data.csv')\n", + "dataset.head()" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
iddatepricebedroomsbathroomssqft_livingsqft_lotfloorswaterfrontviewconditiongradesqft_abovesqft_basementyr_builtyr_renovatedzipcodelatlongsqft_living15sqft_lot15
0712930052020141013T000000221900.031.00118056501.0003711800195509817847.5112-122.25713405650
1641410019220141209T000000538000.032.25257072422.000372170400195119919812547.7210-122.31916907639
2563150040020150225T000000180000.021.00770100001.000367700193309802847.7379-122.23327208062
3248720087520141209T000000604000.043.00196050001.000571050910196509813647.5208-122.39313605000
4195440051020150218T000000510000.032.00168080801.0003816800198709807447.6168-122.04518007503
\n", + "
" + ], + "text/plain": [ + " id date price ... long sqft_living15 sqft_lot15\n", + "0 7129300520 20141013T000000 221900.0 ... -122.257 1340 5650\n", + "1 6414100192 20141209T000000 538000.0 ... -122.319 1690 7639\n", + "2 5631500400 20150225T000000 180000.0 ... -122.233 2720 8062\n", + "3 2487200875 20141209T000000 604000.0 ... -122.393 1360 5000\n", + "4 1954400510 20150218T000000 510000.0 ... -122.045 1800 7503\n", + "\n", + "[5 rows x 21 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yKmb_nEblzKJ", + "outputId": "c21c8859-095c-47b6-ae61-0e60832a15fc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 350 + } + }, + "source": [ + "sb.heatmap(dataset.corr())" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "1gbxlE7Fchza" + }, + "source": [ + "x = np.array(dataset.iloc[:, 3:])\n", + "y = np.array(dataset[['price']])\n", + "x = np.column_stack((np.ones((x.shape[0],1)), x))" + ], + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "lU7JJJqldrSu", + "outputId": "a8ef5e67-e8cd-4343-d3be-5c932fd1bb35", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 340 + } + }, + "source": [ + "B = x.T@x\n", + "B = np.linalg.pinv(B)@x.T@y\n", + "B" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[ 7.25457882e+01],\n", + " [-3.55112011e+04],\n", + " [ 4.10548951e+04],\n", + " [ 1.10263544e+02],\n", + " [ 1.33383087e-01],\n", + " [ 5.26156034e+03],\n", + " [ 5.83295395e+05],\n", + " [ 5.23552276e+04],\n", + " [ 2.72094262e+04],\n", + " [ 9.54805280e+04],\n", + " [ 7.13933921e+01],\n", + " [ 3.88720448e+01],\n", + " [-2.56179589e+03],\n", + " [ 2.04186944e+01],\n", + " [-5.19076331e+02],\n", + " [ 6.02189076e+05],\n", + " [-2.17900343e+05],\n", + " [ 2.30994307e+01],\n", + " [-3.76111346e-01]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qmOXiVPbgc9d", + "outputId": "9e16a85b-b739-4813-df24-b55b10bdba3f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 136 + } + }, + "source": [ + "y_pred = x@B\n", + "y_pred" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[214165.24961057],\n", + " [736050.03190796],\n", + " [376774.44325502],\n", + " ...,\n", + " [147579.54872616],\n", + " [381526.70075266],\n", + " [150168.61330049]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VC2X1tv0qSM7", + "outputId": "56cd23c2-410b-422d-dcc2-e72c3444f978", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "y_mean = np.mean(y)\n", + "R2 = (y_pred - y_mean).T@(y_pred - y_mean)/((y - y_mean).T@(y - y_mean))\n", + "R2[0][0]\n" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.6996864627542719" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "APDJPBuqqnaU", + "outputId": "49e912da-651c-4f90-dbbe-298b3edab271", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "mse = (y_pred-y).T@(y_pred-y)/(y.shape[0])\n", + "print(mse[0][0])" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "40476675707.89203\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file diff --git a/SimpleLinearRegression(Scratch).ipynb b/SimpleLinearRegression(Scratch).ipynb new file mode 100644 index 0000000..f071cd4 --- /dev/null +++ b/SimpleLinearRegression(Scratch).ipynb @@ -0,0 +1,520 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "SimpleLinearRegression(Scratch).ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "iaUm3xYbNmaa" + }, + "source": [ + "#importing necessary dependencies\n", + "import numpy as np\n", + "import pandas as pd\n", + "from matplotlib import pyplot as plt\n", + "import seaborn as sb" + ], + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "GIwCH38MOVMO", + "outputId": "33a5b348-1a4b-41c7-dcd7-5a99b22ce838", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 224 + } + }, + "source": [ + "#importing and reading data\n", + "data = pd.read_csv('kc_house_data.csv')\n", + "data.head()" + ], + "execution_count": 2, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
iddatepricebedroomsbathroomssqft_livingsqft_lotfloorswaterfrontviewconditiongradesqft_abovesqft_basementyr_builtyr_renovatedzipcodelatlongsqft_living15sqft_lot15
0712930052020141013T000000221900.031.00118056501.0003711800195509817847.5112-122.25713405650
1641410019220141209T000000538000.032.25257072422.000372170400195119919812547.7210-122.31916907639
2563150040020150225T000000180000.021.00770100001.000367700193309802847.7379-122.23327208062
3248720087520141209T000000604000.043.00196050001.000571050910196509813647.5208-122.39313605000
4195440051020150218T000000510000.032.00168080801.0003816800198709807447.6168-122.04518007503
\n", + "
" + ], + "text/plain": [ + " id date price ... long sqft_living15 sqft_lot15\n", + "0 7129300520 20141013T000000 221900.0 ... -122.257 1340 5650\n", + "1 6414100192 20141209T000000 538000.0 ... -122.319 1690 7639\n", + "2 5631500400 20150225T000000 180000.0 ... -122.233 2720 8062\n", + "3 2487200875 20141209T000000 604000.0 ... -122.393 1360 5000\n", + "4 1954400510 20150218T000000 510000.0 ... -122.045 1800 7503\n", + "\n", + "[5 rows x 21 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 2 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "yKmb_nEblzKJ", + "outputId": "3305f082-094f-4648-8c07-8543c5e663fa", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 350 + } + }, + "source": [ + "sb.heatmap(data.corr())" + ], + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-8hY6rhhOndN" + }, + "source": [ + "#selecting sqft_living as feature for linear regression in one variable\n", + "x = data['sqft_living']\n", + "y = data['price']" + ], + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "2R3ZYdC-QILK", + "outputId": "c9cc4889-2463-43b3-ed8b-41a0a25eeddd", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 295 + } + }, + "source": [ + "#visualising the given data\n", + "plt.scatter(x, y, color='red')\n", + "plt.title('housing data')\n", + "plt.xlabel('area of living room(sqft)')\n", + "plt.ylabel('price')\n", + "plt.show()" + ], + "execution_count": 5, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEWCAYAAACEz/viAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de5xdZX3v8c83kwSSILdJalHIBKliwbYKQaUcKxWsGm2151WpnuEaNCWxFttqX9j0oj0n55zay6m2AsYWSMmIKMVLEa2FglQUZLjfpAImAbwwmSASbgnJ7/zxrM3s2dn3WWtfZn/fr9d+zd5rr73XMyuT57fWc/k9igjMzGywzel2AczMrPscDMzMzMHAzMwcDMzMDAcDMzPDwcDMzHAwsB4jaZOkEzt8zO2SXtKB4xwv6eGij2PWDgcDG3gRsU9EPNjtcpSTdLqkb3a7HDY4HAzMzMzBwHrSKyXdIelxSZdK2rv0hqT3Srpf0jZJX5b0omz7MkkhaW7ZvtdKek/2/OckfSP7zq2SLi3bLyT9XPb8IkmflPQVSU9IulHSYWX7/pqk+7LvOTf7zvdU+yUkLci+7zFJ9wDHVLx/jqQHsuPcI+k3s+0/D5wPHJs1Yf0k2/5WSbdK+qmkhyR9ZKYn2qzEwcB60UnAm4FDgV8ETgeQ9Abg/2TvHwRsBj7b5Hf+T+DrwAHAwcDf19n3XcBHs33vB9Zlx18MXAZ8GBgG7gN+uc73/DlwWPZ4E3BaxfsPAK8D9suOt1HSQRFxL3AW8O2sCWv/bP8ngVOB/YG3AqslvaPhb27WhJ4LBpIukPSopLua3P+k7KrqbkmfKbp81hGfiIgfRMQ24F+BV2bbR4ELIuKWiHiWVCkfK2lZE9+5ExgBXhQRz0REvfb4L0TEdyLiOWCs7PgrgLsj4vLsvU8AP6rzPScB6yJiW0Q8lO3/vIj4fPZ77o6IS4HvAa+u9WURcW1E3JntfwdwCfD6+r+2WXN6LhgAF5GuChuS9FJShXBcRBwJfKDAclnnlFewTwH7ZM9fRLobACAitgOTwIub+M4/AgR8J7twWNnm8R8qO34A9UYHTdu/vOwAkk6VdJukn2RNQa8AFtf6MkmvkXSNpAlJj5PuHmrub9aKngsGEXEdsK18m6TDJH1N0s2S/lPSy7O33gt8MiIeyz77aIeLa531A9LVPQCSFpGaax4hNaEALCzb/2dLTyLiRxHx3oh4EfA7wLmlfoIW/JDUxFQ6vspf19j/kLLXS8s+OwJ8GvhdYDhrCrqLFLAAqqUT/gzwZeCQiNiP1K+gKvuZtazngkEN64H3R8TRwAeBc7PtLwNeJul6STdIauqOwvrWJcAZkl4paS/gfwM3RsSmiJggBYWTJQ1lV/7lHb/vlFSquB8jVba7Wzz+V4BfkPSOrKP6fZQFnCo+B3xY0gHZsd9f9t6irAwTWfnOIN0ZlPwYOFjS/LJtLwC2RcQzkl4N/I8Wy29WU88HA0n7kDrpPi/pNuBTpM5DgLnAS4HjgXcDn5a0f7Xvsf4XEVcBfwr8C+mq+zBSZ2/Je4EPkZqOjgS+VfbeMcCNkraTrq7PbnVuQURsBd4JfCw7xhHAOPBsjY98lNQ09H1S5/XFZd91D/A3wLdJFf8vANeXffY/gLuBH0namm1bA/yFpCeAPyMFG7NcqBcXt8k6BK+IiFdI2he4LyIOqrLf+aQrwwuz11cD50TETZ0srw0mSXNIfQajEXFNt8tjNhM9f2cQET8Fvi/pnZDaaSX9Uvb2F0l3BaVhfy8Demomqc0ukt4kaf+smeqPSW32N3S5WGYz1nPBQNIlpFvnwyU9LOlM0pDCMyXdTrp1fnu2+78Bk9mEnmuAD0XEZDfKbQPjWNL8gK3ArwPviIinu1sks5nryWYiMzPrrELvDCT9fjam+y5Jl6gsrYCZmfWOwu4MJL0Y+CZwREQ8LelzwJURcVGtzyxevDiWLVtWSHnMzGajm2++eWtELJnp98xtvMuMv3+BpJ2kyUA/qLfzsmXLGB8fL7hIZmazh6TNjfdqrLBmooh4BPhrYAtpTPjjEfH1yv0krZI0Lml8YmKiqOKYmVkdhQUDSQeQRv0cSsrRskjSyZX7RcT6iFgeEcuXLJnxnY6ZmbWhyA7kE4HvR8REROwELqd+ul8zM+uSIoPBFuC1khZmCb1OAO4t8HhmZtamIvsMbiQtBHILcGd2rPVFHc/MzNpX6DyDiPjziHh5RLwiIk7JFiQxM+uusTFYtgzmzEk/x8a6XaKuK3poqZlZbxkbg1Wr4Kmn0uvNm9NrgNHR7pWry3ouN5GZWaHWrp0KBCVPPZW2DzAHAzMbLFu2tLZ9QDgYmNlgWbq0te0DwsHAzAbLunWwcOH0bQsXpu0DzMHAzAbL6CisXw8jIyCln+vXD3TnMXg0kZkNotHRga/8K/nOwMzMHAzMzMzBwMzMcDAwMzMcDMzMDAcDMzPDwcDMzHAwMDMzHAzMzAwHAzObCS8SM2sUFgwkHS7ptrLHTyV9oKjjmVmHlRaJ2bwZIqYWiXFA6EuKiOIPIg0BjwCviYjNtfZbvnx5jI+PF14eM8vBsmUpAFQaGYFNmzpdmoEl6eaIWD7T7+lUM9EJwAP1AoGZ9RkvEjOrdCoYvAu4pNobklZJGpc0PjEx0aHimFlbyvsI5tSoPgZ8kZh+VXgwkDQf+A3g89Xej4j1EbE8IpYvWbKk6OKYWbsq+wh27dpzHy8S07c6cWfwFuCWiPhxB45lZkWptpA8wNCQF4mZBTqxuM27qdFEZGZ9pFZfwO7d6WF9rdA7A0mLgDcClxd5HDPrAC8kP6sVGgwi4smIGI6Ix4s8jpl1gBeSn9U8A9nMmuOF5Ge1TvQZmNls4YXkZy3fGZiZmYOBmZk5GJiZGQ4GZmaGg4GZmeFgYGZmOBiYmRkOBmZmhoOBmZnhYGBmZjgYmJkZDgZmZoaDgZmZ4WBgZmY4GJiZGcUve7m/pMskfVfSvZKOLfJ4ZmbWnqIXt/k48LWI+C1J84GFjT5gZmadV1gwkLQf8CvA6QARsQPYUdTxzMysfUU2Ex0KTAAXSrpV0j9KWlS5k6RVksYljU9MTBRYHDMzq6XIYDAXOAo4LyJeBTwJnFO5U0Ssj4jlEbF8yZIlBRbHzMxqKTIYPAw8HBE3Zq8vIwUHMzPrMYUFg4j4EfCQpMOzTScA9xR1PDMza1/Ro4neD4xlI4keBM4o+HhmZtaGQoNBRNwGLC/yGGZmNnOegWxmZg4GZmbmYGA2WMbGYNkymDMn/Rwb63aJrEcU3YFsZr1ibAxWrYKnnkqvN29OrwFGR7tXLusJvjMwGxRr104FgpKnnkrbbeA5GJgNii1bWttuA8XBwGxQLF3a2nYbKA4GZoNi3TpYWJFFfuHCtN0GnoOBWbd1aoTP6CisXw8jIyCln+vXu/PYAAcDs/y0U6mXRvhs3gwRUyN8igwImzbB7t3ppwOBZRwMzPLQbqXuET7WIxwMzPLQbqXuET7WIxwMzPLQbqXuET7WIxwMzPLQbqXuET7WIxwMzPLQbqU+OgqnnQZDQ+n10FB67Y5d6zAHA7M8tDtsc2wMNmyAXbvS61270msnkLMOU0R0uwzPW758eYyPj3e7GGads2xZGnlUaWQkDf00a0DSzREx40XECs1aKmkT8ASwC3gujwKbzSoeTWQ9ohMprH81IrZ24Dhm/Wfp0up3Bh5NZB3mPgOzbvJoIusRRQeDAL4u6WZJq6rtIGmVpHFJ4xMTEwUXx6zHOF+Q9YhCO5AlvTgiHpH0M8C/A++PiOtq7e8OZDOz1uTVgVzonUFEPJL9fBT4AvDqIo9nZmbtKSwYSFok6QWl58CvAXcVdTwzM2tfkaOJXgh8QVLpOJ+JiK8VeDwzM2tTYcEgIh4Efqmo7zczs/x4aKmZVdepFdisJ3Ri0pmZ9ZvSYj2lNRpKi/WAh73OUr4zMLM9eQW2geNgYGZ7cs6kgeNgYIOnWlu428en8wpsA8d9BjZYqrWFr1yZFrHfuXNq26C3j69bN/08gXMmzXK+M7DBUq0tfMeOqUBQMujt486ZNHC8uI0Nljlz0l1AMyTYvbvY8pjNUF/kJjLrOa20ebt93AaIg4ENlmrrB8yfD/PmTd/m9nEbMA4GNliqtYVfcAFceKHbx22guc/AzKyPuc/ArBd5voL1qabnGUgaAV4aEVdJWgDMjYgniiuaWZ9xPh/rY03dGUh6L3AZ8Kls08HAF4sqlFlfcj4f62PNNhO9DzgO+ClARHwP+JmiCmXWl5zPx/pYs8Hg2YjYUXohaS7QOz3PZr3A+XysjzUbDL4h6Y+BBZLeCHwe+NdmPihpSNKtkq5ot5BmPaNeB3G1OQyer2B9otlgcA4wAdwJ/A5wJfAnTX72bODe1otm1mNKHcSbN6eUFqUO4lJAcD4f62NNzTOQtAh4JiJ2Za+HgL0i4qkGnzsY2ACsA/4gIt5Wb3/PM7CetmxZCgCVRkZg06ZOl8YM6Pw8g6uBBWWvFwBXNfG5vwP+CKiZ7UvSKknjksYnJiaaLI5ZF7iD2GaxZoPB3hGxvfQie76wzv5IehvwaETcXG+/iFgfEcsjYvmSJUuaLI4NvG5M7nIHsc1izQaDJyUdVXoh6Wjg6QafOQ74DUmbgM8Cb5C0sa1S2uCqtSpZvbb7oqxYkfoCyrmD2GaJZvsMjiFV6D8ABPws8NuNrvrLPn888EH3GVhLKmf0Qqp8FyyAyck99y+y7b5aWSQ46yw499xijmnWhLz6DJpKRxERN0l6OXB4tum+iNhZ7zNmM1ZrRm/ltpIi2+6rlSUCrryyuGOadVDdYCDpDRHxH5L+e8VbL5NERFzezEEi4lrg2vaKaAOr1cq9yLZ7dx7bLNeoz+D12c9fr/Ko2+RjBuzZ5r9mTfMdvwceWPu9Ti9G485jm+Xq3hlExJ9LmgN8NSI+16Ey2WxRLYvneedNvV8vq+fYGDz2WO3v3ndf2GefdGW+dGkKBEVO7lq3rnr/hTuPbZZotgN5PI8OikbcgTzL1JqkValax+/ixdU7iUu6sVj92FjqO+hUADJrQl4dyM0Gg/8LbAUuBZ4sbY+IbTMtQDkHg1lmzpzUydqMyv0qh3BW8qxfM6DDo4mA3yZlKV1Tsf0lMy2AzWJLlzZ3ZzA01Nr3unnGLHfNTjo7AvgkcDtwG/D3wJFFFcpmiWYr7F279tw2PFx93zlznPzNrADNBoMNwM8DnyAFgiOybWa1jY7WrtTLjYzsue2kk/bcNn8+/PM/OxCYFaDZYPCKiHhPRFyTPd4LvKLIglkPaiUfUGnfycn67f8LF6Y0D5XDTzdUXGtIcOaZDgRmBWm2z+AWSa+NiBsAJL0GcE/vIGllsffKfSNSZR4xdaewbVvqU1ixIlX8tYaflni2r1mhmr0zOBr4lqRNWeK5bwPHSLpT0h2Flc56x9lnN7/Ye63UDSMjsHVreuzenUYDXXll7fQSldqZ7duN7KatlqNXymgDrdk7gzcXWgrrbWNjtcf8V6ugW0nd0EoF3+ps31buZqp9Nq85BfXKAe2X0SxPEdEzj6OPPjqsB42MRKRr+z0fIyPN79/KvpWPhQsjNm7Mp9zVylFu48Z0vJkev5lytFtGswwwHjnUv802E9kgq3f1Xho+Wt7UsX17GvlTafv2PZtAqi0iX2loqL3hpO0ml6uVLfW001Lfx9y56WezTTr1yuEEeNYjHAyssXrNM2vXptE/5YvNTE6mn4sWTd93cnLPRWjKF5GH6ovHbNjQXpNJrUR39RLgQe2KuDQfovSz2UV16iW5cwI86xEOBjalVkdmvav30uifyivpnTvhmWf23L/U6Vx+rLVr0zEi4OKLU2CQ0s9uTDBrpSKu1Ylertr5K82irveeWSfl0daU18N9Bl20cWPE/PnT263nz49YvXqqXXtoqLn2/Wb7APJqk69Fqn5sqfG5qCxfvUej7yt958hI2ndkZPrvWu89swbIqc+gqUR1neJEdV3UKEtoO+bMqZ5ZdGioegqKvJPP1cqa2sxxSqOJ2s26atYheSWqK6yZSNLekr4j6XZJd0v6aFHHshzkHQggdbRWNoFI1QMBpLb6PMfct9IEU3lcSBV8o+ypbtKx2SKP24tqD0DAPtnzecCNwGvrfcbNRF2UV/NP5eOEE5rfd9Gi/JuPVq+eat4aGkqvK9UbStpoWK2be6zLyKmZqLBgMO0gsBC4BXhNvf0cDLpk48bWKvhabfHVHnPmzHzfdsfcNztfoN5Y/2a/I++5CWZN6otgAAyRUl5vB/6yxj6rSHmOxpcuXVrIybIaGl35wp6dyvPmtRY48nhUdtBu3BgxPDz1/vBw9Uq32QldjTqam7ni79bkMd+NDLy+CAbPHwT2B64hZT+tuZ/vDDqo2REzlZVNeSXcqcfw8PRyVwaoUpCqrAibHU2UR0Xe7silmfDdiEV+waAj8wwi4idZMHCOo15RbZZtpZGRNMZ/06apxHLbWlzptHLi2UytXQs7duy5fefOPcf7NzuhK4+x/t2YPFZrpnSjeQ9mVRQ5mmiJpP2z5wuANwLfLep41qJG6Q5qVYatVm6nngrz5rX2mUrlAaheuSvfa7aSL58F3e5kt25MHnMqC8tRkXcGBwHXZCmubwL+PSKuKPB41op6lfrwMCxYAKeckuYfLF48NeRyxYrGuYTKXXklXHjhVEU707LWK3fle5WpLoaGpucYKh+6WnkH1Oqs5zwCSqucysLylEdbU14P9xl0UK0+g0WLqrfJ59X522qfQ2UbeCt9Bo1+1261sefV6es+A4v8+gy6HgDKHw4GHVY5KqeIh9RcZV7at/J1rXkBzYwmKmk0YqqT6aLzrsA9mmjgORhYYzMZEpnno/KqvVq5agWl4eGZV3aN5kUUOeKnktcvsJzlFQyctXS2KaVVkFKbfymtdK10y53obNy5M7XT12qfh9rpMCYnp/8OK1e2nqKiURt6J9vY3elrPcrBYDYpLa9YSq4WMf398mGHY2OpY7hyn6Ls2jUVjCrzAJ19dvPfs2NHa/tD/RTcjUb85L0+sTt9rVflcXuR18PNRDPUbJPP6tXNzyTee+98m4yGh1tLD13r0WpzUfls61KuokbNTkV00LrT13KG+wxsD63kDGr2UcR35vFotwJtNihs3Fh7/YaZtu+709dylFcwcDPRbFJEU0NE/t+Zh3Zm2lY2o9VavrK0X71U2zMxOpqappYuTd9VWvnNrIscDPpVtbbsFSvan9jVj1pd/+Dss2un4CgPLo1Sdcw06JYHpYjm11I2K5BXOutHpcqkvMKaNy8Fgmp5e2ar4WF4+unp52Hhwuozf8fG4OST63+flEY4zZlT+46o1ve3YiYrsJlVyGulMweDflSrMulntZbCrGVOdlNbbVnNapVqM+es9Lla+w4NwYYNM08xUSvYlIKRWQt6ftlLK9BsHJN++OGt7b97d+2Ks9r5aSUxX62kc3kEAvDwUpuS99DlGXAw6EezsdK45578vqva+al3ziqTyrWSdK6d/8zdyHBqvafX+o7yGJKU18NDS5vU7MI0g/goDYWttj5xL80Z8PBSyyk1CTkNLXWfQb8aG0ujXmZb30Elac/29Wrbqqns7C2dsy1b0p3CunXuCLbuyanvyH0Gg640Vn22DyU98EBYvXp6k81ZZzX32cq5CDNds6CS8wzZTPRY35GDQT9bu7Z3J4XlZXIyddyuWzdViZ97bvOfL7Ji7rH/zNZneqzvyMGgnw3KFWi12cZDQ819tsiKucf+M1uf6cbqeHUUuQbyIZKukXSPpLsltZhqcoDVGqGyZg3MnZv+cObOhb326mYp29NsJV6pcrbxggWNP1OvYs5jSF+P/We2PpR30+VM5NELXe1BWgP5qOz5C4D/Ao6o95mBH01Ua5GXhQsjTjih+yN1ZvKYMyf9fu2OhKqW7XTu3KnRQ0ND6RxVjtCpNmqnyMyhHiVkHUa/ZS0FvgS8sd4+Ax0MBmG4aGkZy/LMoc1+rtZKaPWG4dWq9Nv5rlrfX17xr15dP8g4UFgB+ioYAMuALcC+Vd5bBYwD40uXLi3iXPWHTiw/2QuP0prIzQaEUgCpl0q7VuXazjltVrVAU6uMpbJ5HQMrQF7BoPB5BpL2Ab4BrIuIy+vtO9DzDOolR5ttFi1Kv2u9zKCQ2uBLbf6nndY4d1HlvIJWz6kEF1/cXLttK/mhpNSR7TkJVoC+mGcgaR7wL8BYo0Aw8AZpOOKTTzYOBPPnTwWCemsLlHvqqZSmutQxPKfFP++IlNm0mQ7lVkZyldYtmOn3mBWoyNFEAv4JuDci/rao4/S18hEt27enCtCSHTtSxXzyyY0DR7nJyalcL61kQS3XTI6YWsG7chJgaUST5yRYjyvyzuA44BTgDZJuyx4rCjxef6lMUjU5Cc891+1SzU6t3iFA45XUas0xOOus6kNNPSfBetzcor44Ir4JzPJcCTNQbTUt57Ivxu7dzeczKlevCafUr9Ao11Hp7m/LlpRaY8EC2LYtn9xIZjkqLBhYA24r7qxaHbiNPlPP6Gj9yrxyRbrJyXQ30GwntVkHOR1Ft7ituHMWLUpX4fX6ZGq19c9Etbu/Rs1PZl3iYNBJ5R3GW7d2uzSD4+mn088LLkjrJlcTMRUQ8kor4RFE1kfcTNQplU0GTz7Z3fIMkt2705DTrVunKvhq8wQi8h33X6tpyneF1oN8Z1CEaknQqjUZWOdMTk5/XevqvLzynmkyO48gsj7iO4O8Vd4BbN4MK1emcfPWO2pdtUtTlX7lv+OqVel5s81HzY44MusBXvYyb62kKbDOKv9bHxuDU06pPtx0ZCT9dPoI6wN9kY5iIDkQ9KbKjuPR0drzDrZsceevDRwHgzy1s0CKFW/ePPj4x/fcXroDqLR0qdNH2MBxMJiJyg7Gs72YW88ZGoL3vGeqnb4yH9Tcim6zUoI8d/7agHEwaFdlbqHNm/ccsWLdt2sXnHceLF6clg1tlA+q1HTkJS1twLgDuV3uKO4/zeYnGh72pEDrG+5A7qaxMQeCftTshc/kpPt/bOA4GLRqbAxOPbXbpbCilfIHNTPxbKaT08x6gINBq9audarpQbBlS/V+ocpFb6rtc8opqX/CrI+4z6BVldktrX+NjKQmoe3bq78HjSee1eo7amU9ZbMZcJ9Bp5SaAKQ9hyFa/ypV6OefX3sIaTMTz2rtE+FU1dZXilwD+QJJj0q6q6hjFK68CQDaX1PXuqveWgX1hpA2M/Gs3iQ0z1a2PlLkncFFwJsL/P7ilO4GWl2M3Tqv8qq+2vu11iUuGR1Ndwm7d6efpfeamXi2bl3tpkPPVrY+UuQayNdJWlbU9xdibCzNIvbksf6xbFlaG6Jau/3QEJx2Gpx7bnvf3UzW0dFRuP761NxU3v/m2crWZ7reZyBplaRxSeMTExPdK8iaNWkUiANBf7nnnlTpRsDGjdOv5Hftgg0bZjbUs9pdQ+VQ0uOOS53Fnq1sfazQ0UTZncEVEfGKZvbv2miiNWtSygLrT6XO4Foje/JMO125XgWkAOTK37rEo4nyMjbmQNDvSh21nUg73cwi956EZn3IYyXPPLPbJbCZikiV7oEHVm/my7Mjt1HAqbbSXasrpJl1QZFDSy8Bvg0cLulhSb1X6554Ijz7bLdLYXnYvBmeeCKtXVAu747cRsNNm7lzMOtBhQWDiHh3RBwUEfMi4uCI+KeijtWWI4+Eq6/udiksTzt2wL77FtuR22i4qVdIsz41mM1EJ56YRqFY9w0NtTaZr16aCIBt24pNP91ouOnSpdXL5jkH1uMGswPZdwS9o5VA0ChNBHSm0q01SQ28Qpr1rcEJBuU5hqz/SGkCWb00EVL3K12vkGZ9ajCyllYbG279p7QCWbV/TymlnWh3trFZn/I8g1acfroDQb+od+dWWoGs2tX3xRc7EJjNwOwPBkceueei59abSknlhoZq71Maolmv3d7MWjY7g8HYGCxenK4aPWqoP5T6BM49N+UTqsVDNM0KMfuCwdgYnHGGE871mwi48sr0fHQ09Q9U4yGaZoWYXcFgbCxdXe7c2e2SWDvKr/o//nEP0TTroNkTDMbGYOVKr0bWC444Ys+KvNQxPDLS3FW/h2iaddTsCQYrV6Z0BNY9EqxeDXffXX20T0Tq7G32qt+dxGYdMzvSUaxZ40DQbSecAFddNfV6dLR25d3MCmJm1lGz487A6xHkb2goNeeUruw3bpxaTay8mWd4OG0rDwTN8FW/WU/p/zsDLxySr9Wr60/eqnfFb2Z9q7/vDEppCaw9w8N7Xv17Fq/ZQOrvO4NqC4lYdXPmpCaZkRG3z5vZHvo7GAz6bFQpteNDauNftcpX9mbWlkKbiSS9WdJ9ku6XdE7uBxiE2ajlnbeVj927p54/95wDgZm1rcg1kIeATwJvAY4A3i3piFwPUm0hkX6zaFHtyr40Lt9NOmZWsCLvDF4N3B8RD0bEDuCzwNtzPUL5LNVeUxpyWauSLz22b3dlb2ZdV2QweDHwUNnrh7Nt00haJWlc0vjExETrRymNV9+4sTN3Cc1W8lu3upI3s77R9aGlEbE+IpZHxPIlS5a0/0V53CXUa593JW9ms1iRo4keAQ4pe31wtq04nhBlZtaWIu8MbgJeKulQSfOBdwFfLvB4ZmbWpsLuDCLiOUm/C/wbMARcEBF3F3U8MzNrX6GTziLiSuDKIo9hZmYz1/UOZDMz6z4HAzMzQ1HKbdMDJE0Am+vsshjY2qHi5Mnl7iyXu7Nc7s6qLPdIRMxgXH7SU8GgEUnjEbG82+VolcvdWS53Z7ncnVVUud1MZGZmDgZmZtZ/wWB9twvQJpe7s1zuznK5O6uQcvdVn4GZmRWj3+4MzMysAA4GZmbWP8Gg8CU0WyvLIZKukXSPpLslnZ1tP1DSv0v6XvbzgGy7JH0iK/sdko4q+67Tsv2/J+m0DpV/SNKtkq7IXh8q6casfJdmiQWRtFf2+v7s/WVl3/HhbPt9kt7UgTLvL+kySd+VdK+kY/vhfEv6/exv5C5Jl0jauxfPt6QLJD0q6a6ybbmdX0lHS7oz+8wnJKnAcv9V9ndyh6QvSNq/7L2q51dBik4AAAjLSURBVLFW/VLr36qIcpe994eSQtLi7HVnzndE9PyDlOjuAeAlwHzgduCILpbnIOCo7PkLgP8iLe35MeCcbPs5wF9mz1cAXwUEvBa4Mdt+IPBg9vOA7PkBHSj/HwCfAa7IXn8OeFf2/HxgdfZ8DXB+9vxdwKXZ8yOyf4O9gEOzf5uhgsu8AXhP9nw+sH+vn2/SYk7fBxaUnefTe/F8A78CHAXcVbYtt/MLfCfbV9ln31JguX8NmJs9/8uyclc9j9SpX2r9WxVR7mz7IaTknpuBxZ0834VWOjn+oR4L/FvZ6w8DH+52ucrK8yXgjcB9wEHZtoOA+7LnnwLeXbb/fdn77wY+VbZ92n4FlfVg4GrgDcAV2R/L1rL/PM+f6+yP8tjs+dxsP1We//L9CirzfqRKVRXbe/p8M7Xa34HZ+bsCeFOvnm9gGdMr1VzOb/bed8u2T9sv73JXvPebwFj2vOp5pEb9Uu//RlHlBi4DfgnYxFQw6Mj57pdmoqaW0OyG7Fb+VcCNwAsj4ofZWz8CXpg9r1X+bvxefwf8EbA7ez0M/CQinqtShufLl73/eLZ/p8t9KDABXKjUvPWPkhbR4+c7Ih4B/hrYAvyQdP5upvfPd0le5/fF2fPK7Z2wknRlDK2Xu97/jdxJejvwSETcXvFWR853vwSDniRpH+BfgA9ExE/L34sUkntq3K6ktwGPRsTN3S5Li+aSbqnPi4hXAU+Smi2e16Pn+wDg7aRg9iJgEfDmrhaqTb14fhuRtBZ4DhjrdlkakbQQ+GPgz7pVhn4JBp1fQrMBSfNIgWAsIi7PNv9Y0kHZ+wcBj2bba5W/07/XccBvSNoEfJbUVPRxYH9JpbUtysvwfPmy9/cDJrtQ7oeBhyPixuz1ZaTg0Ovn+0Tg+xExERE7gctJ/wa9fr5L8jq/j2TPK7cXRtLpwNuA0SyQ0aB81bZPUvvfKm+HkS4abs/+fx4M3CLpZ9sod3vnO+92xyIepCvDB7OTVergObKL5RHwz8DfVWz/K6Z3uH0se/5WpncAfSfbfiCpLfyA7PF94MAO/Q7HM9WB/Hmmd5KtyZ6/j+kdmp/Lnh/J9I64Bym+A/k/gcOz5x/JznVPn2/gNcDdwMKsLBuA9/fq+WbPPoPczi97dmiuKLDcbwbuAZZU7Ff1PFKnfqn1b1VEuSve28RUn0FHzndh/3kL+ENdQRq18wCwtstl+W+kW+Y7gNuyxwpSG+PVwPeAq8r+YQR8Miv7ncDysu9aCdyfPc7o4O9wPFPB4CXZH8/92R//Xtn2vbPX92fvv6Ts82uz3+c+choZ0qC8rwTGs3P+xeyPv+fPN/BR4LvAXcDFWUXUc+cbuITUr7GTdCd2Zp7nF1ienYMHgH+gYjBAzuW+n9SWXvq/eX6j80iN+qXWv1UR5a54fxNTwaAj59vpKMzMrG/6DMzMrEAOBmZm5mBgZmYOBmZmhoOBmZnhYGB9StLLJd2Wpac4rOK9TWUZH7/V4HuWS/pEkWXNm6QFkr4haaiNzy7JsnDeKul1ktZUvPe1fEtr/cLBwArVToXVpHcAl0XEqyLigVo7RcQv1/uSiBiPiN/Lu3Bls1aLsBK4PCJ2tfHZE4A7I6X1eIiUKRWAiJgAfijpuHyKaf3EwcDaJumLkm5Wyte/qmz7dkl/I+l24FhJJ0v6TnYl/6lSgJB0nqTx7PMfrXGMV0q6oSw3/QGSVgAfAFZLuqZBGbdnPz8r6a1l2y+S9FuSjtfUug4fyfLMXyvpQUm/V7b/n2b57r+ptC7BB6sc6yJJ50u6EfhYtbLX+p2y7ddK+n/ZOblX0jGSLs9y1f+vskONkjLlIukgSddl5/YuSa/Ltp8h6b+y8/5pSf8g6ZWktNRvl3QbKb3zYdln/yr77i9m32+DpugZmH7M3gdTM1IXkGY7DmevAzgpe/7zwL8C87LX5wKnVnx+CLgW+MUqx7gDeH32/C/IUoCQUlJ8sEa5NjE1e3N79vM3gQ3Z8/mkq+IFTJ+J/RHgW6RZwotJuWnmAceQZrLuTVq/4nvVjg1cREpTPdSg7LW2X8tU7v2zgR+Q0hHvRZqlOpyV/Udlx/xDshmz2Xl8QfaZLcCSbP/rgX/I9jm97Pky9kyh/GLSnUPX/7786OzDdwY2E7+XXf3fQEqY9dJs+y5SEj9IzRJHAzdlV6MnkKb4A5wk6RbgVlLemCPKv1zSfsD+EfGNbNMG0qIg7fgq8KuS9gLeAlwXEU9X2e8rEfFsRGwlJWZ7ISm53Jci4pmIeIIU3Gr5fETsqlX2Jn6nL2c/7wTujogfRsSzpNw5h5CC1E/K9r8JOEPSR4BfyMr3GuDaSAnydgCXNjo5ZR4lZVi1AVNku6bNYpKOJ2XlPDYinpJ0LenKGeCZmGrPFumK/MMVnz8U+CBwTEQ8Jumiss/nLiKeycr4JuC3SVlbq3m27PkuWv8/8mTrpat6/N0VZdmdleVpys5TRFwn6VdIycwukvS3wLR06i3aOzuGDRjfGVi79gMeywLBy0kZEqu5GvgtST8Dz6+rOwLsS6o4H5f0QtLV+jQR8TjwWKkdHDgF+Eblfi24FDgDeB3QyqiZ64FfV1q/eB9SauS6apV9pr9TRDwGDEnaGyA7lz+OiE8D/0hK7X0j8HpJw0qp1t9Z4+ueIDUrlXsZqcnPBozvDKxdXwPOknQvKQPkDdV2ioh7JP0J8HVJc0hZGt8XETdIupWU0fMhUoVbzWnA+UqLfzxIqszb9XVS5tAvZc0nTYmImyR9mdTW/2NSE87jTXy0Vtln+jt9nZQ59ypSn8eHJO0EtpP6Y36YNRt9m9SkdFuN32tS0vVKi7J/NSI+BPwq8JUWy2OzgLOWmjVB0j4RsT2rwK8DVkXELV0qy1HA70fEKU3ufzop7fHvNrHvdcDbszsQGyC+MzBrznpJR5Da1Dd0KxAARMQtkq6RNBTtzTWoStIS4G8dCAaT7wzMzMwdyGZm5mBgZmY4GJiZGQ4GZmaGg4GZmQH/H09EhUWAjhZUAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "qtwSgfRMO4cp", + "outputId": "52e3133e-7f08-49a3-8604-b782f7fa6990", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "#calculating the means\n", + "x_mean = np.mean(x)\n", + "y_mean = np.mean(y)\n", + "print(x_mean,y_mean)" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "stream", + "text": [ + "2079.8997362698374 540088.1417665294\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "95xbOQcKRjdZ", + "outputId": "90282b99-cc06-4fb1-c860-d61ccda5cb42", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "#slope calculation\n", + "m = (x-x_mean).T@(y-y_mean)/((x-x_mean).T@(x-x_mean))\n", + "m" + ], + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "280.6235678974482" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "CM1bmZuBR9Lx", + "outputId": "a6efa373-737c-4ae3-c65f-42d6a194eab7", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "#intercept calculation\n", + "c = y_mean - m*x_mean\n", + "c" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "-43580.743094473844" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ldxOBw8bSFOw" + }, + "source": [ + "#creating array of predicted price for graph ploting\n", + "y_pred = m*x + c" + ], + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "U2vHoursSS2f", + "outputId": "8ef9042a-7f3a-43c6-a5c3-a767dc81c75f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 295 + } + }, + "source": [ + "#ploting predicted vs actual prices\n", + "plt.scatter(x, y, color='red')\n", + "plt.plot(x,y_pred,color='blue')\n", + "plt.title('housing data')\n", + "plt.xlabel('area of living room(sqft)')\n", + "plt.ylabel('price')\n", + "plt.show()" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SP_uCRgISf9b", + "outputId": "a1a097b9-4dd1-465b-9f50-5a96f56995cb", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "#calculating R Square value\n", + "R2 = (y_pred - y_mean).T@(y_pred - y_mean)/((y - y_mean).T@(y - y_mean))\n", + "R2" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.49285321790379316" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 11 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fw_1A2ztZldM", + "outputId": "c318f37a-0ca9-4c49-ebf7-1bfcdaf0ffe1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "mse = ((y-y_pred).T@(y-y_pred))/(y.shape[0])\n", + "print(mse)" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "68351286833.03984\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file