mirror of
https://github.com/deepseek-ai/DeepSeek-Coder.git
synced 2025-02-23 06:09:07 -05:00
1508 lines
91 KiB
Plaintext
1508 lines
91 KiB
Plaintext
{
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0,
|
||
"metadata": {
|
||
"colab": {
|
||
"provenance": [],
|
||
"include_colab_link": true
|
||
},
|
||
"kernelspec": {
|
||
"name": "python3",
|
||
"display_name": "Python 3"
|
||
},
|
||
"language_info": {
|
||
"name": "python"
|
||
}
|
||
},
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "view-in-github",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"<a href=\"https://colab.research.google.com/github/Orrm23/DeepSeek-Coder/blob/main/11___House_price_prediction_using_Linear_Regression.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "I1VRs4tZkbvW"
|
||
},
|
||
"source": [
|
||
"# **Day-11 | House price prediction using Linear Regression-SingleVariable**"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "SAFLqwkKk8rK"
|
||
},
|
||
"source": [
|
||
"### *Import Libraries*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "EgF2lvr_jzVL"
|
||
},
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"from sklearn.linear_model import LinearRegression\n",
|
||
"import matplotlib.pyplot as plt"
|
||
],
|
||
"execution_count": 1,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "XWe_7j6UjxRj"
|
||
},
|
||
"source": [
|
||
"### *Load Dataset from Local Directory*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "vKrHCJk_jwfJ",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 73
|
||
},
|
||
"outputId": "715c67be-afd2-4b0d-c041-a7d3888a5095"
|
||
},
|
||
"source": [
|
||
"from google.colab import files\n",
|
||
"uploaded = files.upload()"
|
||
],
|
||
"execution_count": 2,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.HTML object>"
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
" <input type=\"file\" id=\"files-ba700bc1-a24e-4d7e-a8ba-3d9c6afc4d6b\" name=\"files[]\" multiple disabled\n",
|
||
" style=\"border:none\" />\n",
|
||
" <output id=\"result-ba700bc1-a24e-4d7e-a8ba-3d9c6afc4d6b\">\n",
|
||
" Upload widget is only available when the cell has been executed in the\n",
|
||
" current browser session. Please rerun this cell to enable.\n",
|
||
" </output>\n",
|
||
" <script>// Copyright 2017 Google LLC\n",
|
||
"//\n",
|
||
"// Licensed under the Apache License, Version 2.0 (the \"License\");\n",
|
||
"// you may not use this file except in compliance with the License.\n",
|
||
"// You may obtain a copy of the License at\n",
|
||
"//\n",
|
||
"// http://www.apache.org/licenses/LICENSE-2.0\n",
|
||
"//\n",
|
||
"// Unless required by applicable law or agreed to in writing, software\n",
|
||
"// distributed under the License is distributed on an \"AS IS\" BASIS,\n",
|
||
"// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
|
||
"// See the License for the specific language governing permissions and\n",
|
||
"// limitations under the License.\n",
|
||
"\n",
|
||
"/**\n",
|
||
" * @fileoverview Helpers for google.colab Python module.\n",
|
||
" */\n",
|
||
"(function(scope) {\n",
|
||
"function span(text, styleAttributes = {}) {\n",
|
||
" const element = document.createElement('span');\n",
|
||
" element.textContent = text;\n",
|
||
" for (const key of Object.keys(styleAttributes)) {\n",
|
||
" element.style[key] = styleAttributes[key];\n",
|
||
" }\n",
|
||
" return element;\n",
|
||
"}\n",
|
||
"\n",
|
||
"// Max number of bytes which will be uploaded at a time.\n",
|
||
"const MAX_PAYLOAD_SIZE = 100 * 1024;\n",
|
||
"\n",
|
||
"function _uploadFiles(inputId, outputId) {\n",
|
||
" const steps = uploadFilesStep(inputId, outputId);\n",
|
||
" const outputElement = document.getElementById(outputId);\n",
|
||
" // Cache steps on the outputElement to make it available for the next call\n",
|
||
" // to uploadFilesContinue from Python.\n",
|
||
" outputElement.steps = steps;\n",
|
||
"\n",
|
||
" return _uploadFilesContinue(outputId);\n",
|
||
"}\n",
|
||
"\n",
|
||
"// This is roughly an async generator (not supported in the browser yet),\n",
|
||
"// where there are multiple asynchronous steps and the Python side is going\n",
|
||
"// to poll for completion of each step.\n",
|
||
"// This uses a Promise to block the python side on completion of each step,\n",
|
||
"// then passes the result of the previous step as the input to the next step.\n",
|
||
"function _uploadFilesContinue(outputId) {\n",
|
||
" const outputElement = document.getElementById(outputId);\n",
|
||
" const steps = outputElement.steps;\n",
|
||
"\n",
|
||
" const next = steps.next(outputElement.lastPromiseValue);\n",
|
||
" return Promise.resolve(next.value.promise).then((value) => {\n",
|
||
" // Cache the last promise value to make it available to the next\n",
|
||
" // step of the generator.\n",
|
||
" outputElement.lastPromiseValue = value;\n",
|
||
" return next.value.response;\n",
|
||
" });\n",
|
||
"}\n",
|
||
"\n",
|
||
"/**\n",
|
||
" * Generator function which is called between each async step of the upload\n",
|
||
" * process.\n",
|
||
" * @param {string} inputId Element ID of the input file picker element.\n",
|
||
" * @param {string} outputId Element ID of the output display.\n",
|
||
" * @return {!Iterable<!Object>} Iterable of next steps.\n",
|
||
" */\n",
|
||
"function* uploadFilesStep(inputId, outputId) {\n",
|
||
" const inputElement = document.getElementById(inputId);\n",
|
||
" inputElement.disabled = false;\n",
|
||
"\n",
|
||
" const outputElement = document.getElementById(outputId);\n",
|
||
" outputElement.innerHTML = '';\n",
|
||
"\n",
|
||
" const pickedPromise = new Promise((resolve) => {\n",
|
||
" inputElement.addEventListener('change', (e) => {\n",
|
||
" resolve(e.target.files);\n",
|
||
" });\n",
|
||
" });\n",
|
||
"\n",
|
||
" const cancel = document.createElement('button');\n",
|
||
" inputElement.parentElement.appendChild(cancel);\n",
|
||
" cancel.textContent = 'Cancel upload';\n",
|
||
" const cancelPromise = new Promise((resolve) => {\n",
|
||
" cancel.onclick = () => {\n",
|
||
" resolve(null);\n",
|
||
" };\n",
|
||
" });\n",
|
||
"\n",
|
||
" // Wait for the user to pick the files.\n",
|
||
" const files = yield {\n",
|
||
" promise: Promise.race([pickedPromise, cancelPromise]),\n",
|
||
" response: {\n",
|
||
" action: 'starting',\n",
|
||
" }\n",
|
||
" };\n",
|
||
"\n",
|
||
" cancel.remove();\n",
|
||
"\n",
|
||
" // Disable the input element since further picks are not allowed.\n",
|
||
" inputElement.disabled = true;\n",
|
||
"\n",
|
||
" if (!files) {\n",
|
||
" return {\n",
|
||
" response: {\n",
|
||
" action: 'complete',\n",
|
||
" }\n",
|
||
" };\n",
|
||
" }\n",
|
||
"\n",
|
||
" for (const file of files) {\n",
|
||
" const li = document.createElement('li');\n",
|
||
" li.append(span(file.name, {fontWeight: 'bold'}));\n",
|
||
" li.append(span(\n",
|
||
" `(${file.type || 'n/a'}) - ${file.size} bytes, ` +\n",
|
||
" `last modified: ${\n",
|
||
" file.lastModifiedDate ? file.lastModifiedDate.toLocaleDateString() :\n",
|
||
" 'n/a'} - `));\n",
|
||
" const percent = span('0% done');\n",
|
||
" li.appendChild(percent);\n",
|
||
"\n",
|
||
" outputElement.appendChild(li);\n",
|
||
"\n",
|
||
" const fileDataPromise = new Promise((resolve) => {\n",
|
||
" const reader = new FileReader();\n",
|
||
" reader.onload = (e) => {\n",
|
||
" resolve(e.target.result);\n",
|
||
" };\n",
|
||
" reader.readAsArrayBuffer(file);\n",
|
||
" });\n",
|
||
" // Wait for the data to be ready.\n",
|
||
" let fileData = yield {\n",
|
||
" promise: fileDataPromise,\n",
|
||
" response: {\n",
|
||
" action: 'continue',\n",
|
||
" }\n",
|
||
" };\n",
|
||
"\n",
|
||
" // Use a chunked sending to avoid message size limits. See b/62115660.\n",
|
||
" let position = 0;\n",
|
||
" do {\n",
|
||
" const length = Math.min(fileData.byteLength - position, MAX_PAYLOAD_SIZE);\n",
|
||
" const chunk = new Uint8Array(fileData, position, length);\n",
|
||
" position += length;\n",
|
||
"\n",
|
||
" const base64 = btoa(String.fromCharCode.apply(null, chunk));\n",
|
||
" yield {\n",
|
||
" response: {\n",
|
||
" action: 'append',\n",
|
||
" file: file.name,\n",
|
||
" data: base64,\n",
|
||
" },\n",
|
||
" };\n",
|
||
"\n",
|
||
" let percentDone = fileData.byteLength === 0 ?\n",
|
||
" 100 :\n",
|
||
" Math.round((position / fileData.byteLength) * 100);\n",
|
||
" percent.textContent = `${percentDone}% done`;\n",
|
||
"\n",
|
||
" } while (position < fileData.byteLength);\n",
|
||
" }\n",
|
||
"\n",
|
||
" // All done.\n",
|
||
" yield {\n",
|
||
" response: {\n",
|
||
" action: 'complete',\n",
|
||
" }\n",
|
||
" };\n",
|
||
"}\n",
|
||
"\n",
|
||
"scope.google = scope.google || {};\n",
|
||
"scope.google.colab = scope.google.colab || {};\n",
|
||
"scope.google.colab._files = {\n",
|
||
" _uploadFiles,\n",
|
||
" _uploadFilesContinue,\n",
|
||
"};\n",
|
||
"})(self);\n",
|
||
"</script> "
|
||
]
|
||
},
|
||
"metadata": {}
|
||
},
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"Saving dataset.csv to dataset.csv\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "6gXowmSom462"
|
||
},
|
||
"source": [
|
||
"### *Load Dataset*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "6JLDHSdym6wP"
|
||
},
|
||
"source": [
|
||
"dataset = pd.read_csv('dataset.csv')"
|
||
],
|
||
"execution_count": 3,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "-DdkIy1ZnDfA"
|
||
},
|
||
"source": [
|
||
"### *Load Summarize*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "OlElQViRnGFp",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "d47549da-8c94-4e4b-ef5c-d76fae7a04d8"
|
||
},
|
||
"source": [
|
||
"print(dataset.shape)\n",
|
||
"print(dataset.head(5))"
|
||
],
|
||
"execution_count": 4,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"(1460, 2)\n",
|
||
" area price\n",
|
||
"0 8450 208500\n",
|
||
"1 9600 181500\n",
|
||
"2 11250 223500\n",
|
||
"3 9550 140000\n",
|
||
"4 14260 250000\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "p5yk_BN4nMtD"
|
||
},
|
||
"source": [
|
||
"### *Visualize Dataset*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "a8Mi5nkFnOTQ",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 466
|
||
},
|
||
"outputId": "cb410515-c01a-4870-f356-77eef2cedaa8"
|
||
},
|
||
"source": [
|
||
"plt.xlabel('Area')\n",
|
||
"plt.ylabel('Price')\n",
|
||
"plt.scatter(dataset.area,dataset.price,color='red',marker='*')"
|
||
],
|
||
"execution_count": 5,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
"<matplotlib.collections.PathCollection at 0x7bfbb6e1f010>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 5
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
],
|
||
"image/png": "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6mc2qxl+v/894OenlqepyccHGDZMlVeoaybglS7ETERE5OY4+8+JPG72H2A9A7AhERHAmTNqtKrm4swLFwImExAWBsyerfYxB4uIiDyAvd/fDKqcyCODKgD47jsgJQU4erTuNtHRwN69QEyM2q6vHIPZXJ2DpQVhREREboolFchxjh5VD6PR9nGjEfjww+qACmi4HENTFmImIiJyYwyqyJoIkJmpnjUvvaSey8psn1NWpvKtatLKMQQHW+8PDlavYRmEEREReTiWVCBr6emqoOe0aeqWHqACI03btsCFC2qEqagI6N5drQ+4bh2QmFj7enUtzrx/v+32REREHopBFVnTZue99pp15XTNhQvquaoKeP114JprgNxcoEsX29ezXJz5t78FJk1S23UFYURERB6KQVVLV3OWnhZU2QqoLPn7A3ff3XBO1MiRQP/+wLhxwIMPqn233qr2ExEReREGVS1dcTEwf771LD3AetHkmm64AZgxA2jduv5rm80qGb2gAHjuueqA7eBBlVOVmcmyCkRE5DVYUsGJ3LakQm6uGknKyrJOUK/L888DTzwBbNoEDB9edzuWVSAiIi/glJIK5eXlyMnJQWVl5ZVchlytrll6tmb0AdWzARuqjs6yCkRE1II06fbf5cuX8ac//QnvvPMOAODEiRPo1q0b/vSnP6FTp0544oknHNpJcgJbs/S0YHnUKGDAAOCjj4D//hc4d07tX7lSjUQZDHXfxtMCtogI6+trZRX8/Zvn9yEiInKyJo1UzZ07F1999RUyMzMRGBio709KSsJHH33ksM6RE1nO0jt5UgVSAHDHHcC77wJLlqiAylJxMTBvHvDkkyovq2ZQpqmvrAIREZGXaFJQ9cknn+Dll1/GjTfeCIPBoO/v06cPvv32W4d1jpxo5Ejggw+Ajz8GrroKWLtWbc+ZA7z3HjBxohp1sqVbN+DLL+u+jVdXwLZuncN/DSIiIldp0u2/H3/8ER06dKi1v7i42CrIIg+SmGhdN8pgAO65Ry2CnJKiks7r8sMPwJtvApGRtm8BWpZVMBhUwLZiRd21rYiIiDxQk0aqBg0ahA0bNujbWiD1xhtvICEhwTE9I/ewe7cKqK6+uu42paXA3/5W9y3AxEQVoGkBtxaweUvxT1tL+xARUYvTpJGq5557DiNGjMCxY8dQWVmJl156CceOHcOePXuw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QAYPHix79+51dZe8wtixY6Vjx44SEBAgnTp1krFjx8rJkyf14yUlJTJt2jRp06aNBAcHy5133innzp2zusaZM2dkxIgREhQUJO3atZNZs2ZJRUWFVZvt27fLgAEDJCAgQLp16yZvv/12rb7wPa62fft2AVDrMWHCBBFR0+TnzZsnkZGRYjQa5bbbbpOcnByra1y4cEHGjRsnrVu3ltDQUHnggQekqKjIqs1XX30lN954oxiNRunUqZM8//zztfqyatUqufrqqyUgIED69OkjGzZssDpuT1+8UX3v0eXLl2XYsGHSvn178ff3ly5dushDDz1U6x8JfI+al633B4DV5487fcbZ0xd3YxARcfboGBEREZG3YU4VERERkQMwqCIiIiJyAAZVRERERA7AoIqIiIjIARhUERERETkAgyoiIiIiB2BQRUREROQADKqIiIiIHIBBFREREZEDMKgiIrIhKysLvr6+SElJcXVXiMhDcJkaIiIbHnzwQbRu3RpvvvkmcnJyEB0dbbOdiKCqqgp+fn5O7iERuRuOVBER1XDp0iV89NFHmDp1KlJSUrB8+XL9WGZmJgwGAzZt2oSBAwfCaDRi165dMJvNSEtLQ1xcHIKCgtC/f3+sWbNGP6+qqgqTJk3Sj/fs2RMvvfSSC347Imou/KcVEVENq1atQq9evdCzZ0/88Y9/xPTp0zF37lwYDAa9zRNPPIFFixahW7duaNOmDdLS0vD+++/j1VdfRY8ePbBz50788Y9/RPv27XHLLbfAbDajc+fOWL16Ndq2bYs9e/Zg8uTJ6NixI+666y4X/rZE5Ci8/UdEVENiYiLuuusuPProo6isrETHjh2xevVq3HrrrcjMzMTQoUPxySefYNSoUQCAsrIyREREYOvWrUhISNCv8+CDD+Ly5cv48MMPbb7OI488gry8PKsRLSLyXBypIiKykJOTg/3792Pt2rUAAD8/P4wdOxZvvvkmbr31Vr3doEGD9J9PnjyJy5cv4ze/+Y3VtcrLy3Hdddfp20uXLsVbb72F3NxclJSUoLy8HAMGDGjW34eInIdBFRGRhTfffBOVlZVWiekiAqPRiJdfflnf16pVK/3nS5cuAQA2bNiATp06WV3PaDQCAFauXInHHnsM//jHP5CQkICQkBC88MIL2LdvX3P+OkTkRAyqiIh+UVlZiXfffRf/+Mc/MGzYMKtjo0ePxooVK9CrV69a5/Xu3RtGoxG5ubm45ZZbbF579+7dGDJkCKZNm6bv+/bbbx37CxCRSzGoIiL6xfr16/Hzzz9j0qRJCAsLszo2ZswYvPnmm3jhhRdqnRcSEoLHHnsMM2bMgNlsxo033ojCwkLs3r0boaGhmDBhAnr06IF3330XmzdvRlxcHN577z188cUXiIuLc9avR0TNjCUViIh+8eabbyIpKalWQAWooOrAgQP4+uuvbZ77t7/9DfPmzUNaWhquueYaDB8+HBs2bNCDpocffhi/+93vMHbsWMTHx+PChQtWo1ZE5Pk4+4+IiIjIAThSRUREROQADKqIiIiIHIBBFREREZEDMKgiIiIicgAGVUREREQOwKCKiIiIyAEYVBERERE5AIMqIiIiIgdgUEVERETkAAyqiIiIiByAQRURERGRA/x/bOrYdVKUcBIAAAAASUVORK5CYII=\n"
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "JRyfB6prpJDP"
|
||
},
|
||
"source": [
|
||
"### *Segregate Dataset into Input X & Output Y*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "x9dQcTohpK1X",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 424
|
||
},
|
||
"outputId": "f42cd163-c1ad-4279-da9b-845cd0644611"
|
||
},
|
||
"source": [
|
||
"X = dataset.drop('price',axis='columns')\n",
|
||
"X"
|
||
],
|
||
"execution_count": 6,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
" area\n",
|
||
"0 8450\n",
|
||
"1 9600\n",
|
||
"2 11250\n",
|
||
"3 9550\n",
|
||
"4 14260\n",
|
||
"... ...\n",
|
||
"1455 7917\n",
|
||
"1456 13175\n",
|
||
"1457 9042\n",
|
||
"1458 9717\n",
|
||
"1459 9937\n",
|
||
"\n",
|
||
"[1460 rows x 1 columns]"
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
" <div id=\"df-82d1ac63-2545-4535-aa62-9486fd03f7e1\" class=\"colab-df-container\">\n",
|
||
" <div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>area</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>8450</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>9600</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>11250</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>9550</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>14260</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1455</th>\n",
|
||
" <td>7917</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1456</th>\n",
|
||
" <td>13175</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1457</th>\n",
|
||
" <td>9042</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1458</th>\n",
|
||
" <td>9717</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1459</th>\n",
|
||
" <td>9937</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>1460 rows × 1 columns</p>\n",
|
||
"</div>\n",
|
||
" <div class=\"colab-df-buttons\">\n",
|
||
"\n",
|
||
" <div class=\"colab-df-container\">\n",
|
||
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-82d1ac63-2545-4535-aa62-9486fd03f7e1')\"\n",
|
||
" title=\"Convert this dataframe to an interactive table.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
||
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
" <style>\n",
|
||
" .colab-df-container {\n",
|
||
" display:flex;\n",
|
||
" gap: 12px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-buttons div {\n",
|
||
" margin-bottom: 4px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#df-82d1ac63-2545-4535-aa62-9486fd03f7e1 button.colab-df-convert');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" async function convertToInteractive(key) {\n",
|
||
" const element = document.querySelector('#df-82d1ac63-2545-4535-aa62-9486fd03f7e1');\n",
|
||
" const dataTable =\n",
|
||
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
||
" [key], {});\n",
|
||
" if (!dataTable) return;\n",
|
||
"\n",
|
||
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
||
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
||
" + ' to learn more about interactive tables.';\n",
|
||
" element.innerHTML = '';\n",
|
||
" dataTable['output_type'] = 'display_data';\n",
|
||
" await google.colab.output.renderOutput(dataTable, element);\n",
|
||
" const docLink = document.createElement('div');\n",
|
||
" docLink.innerHTML = docLinkHtml;\n",
|
||
" element.appendChild(docLink);\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
"\n",
|
||
"<div id=\"df-80ed0186-b00b-44aa-9399-e1401cb60ad5\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-80ed0186-b00b-44aa-9399-e1401cb60ad5')\"\n",
|
||
" title=\"Suggest charts\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <g>\n",
|
||
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
||
" </g>\n",
|
||
"</svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
"<style>\n",
|
||
" .colab-df-quickchart {\n",
|
||
" --bg-color: #E8F0FE;\n",
|
||
" --fill-color: #1967D2;\n",
|
||
" --hover-bg-color: #E2EBFA;\n",
|
||
" --hover-fill-color: #174EA6;\n",
|
||
" --disabled-fill-color: #AAA;\n",
|
||
" --disabled-bg-color: #DDD;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart {\n",
|
||
" --bg-color: #3B4455;\n",
|
||
" --fill-color: #D2E3FC;\n",
|
||
" --hover-bg-color: #434B5C;\n",
|
||
" --hover-fill-color: #FFFFFF;\n",
|
||
" --disabled-bg-color: #3B4455;\n",
|
||
" --disabled-fill-color: #666;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart {\n",
|
||
" background-color: var(--bg-color);\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: var(--fill-color);\n",
|
||
" height: 32px;\n",
|
||
" padding: 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart:hover {\n",
|
||
" background-color: var(--hover-bg-color);\n",
|
||
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: var(--button-hover-fill-color);\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart-complete:disabled,\n",
|
||
" .colab-df-quickchart-complete:disabled:hover {\n",
|
||
" background-color: var(--disabled-bg-color);\n",
|
||
" fill: var(--disabled-fill-color);\n",
|
||
" box-shadow: none;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-spinner {\n",
|
||
" border: 2px solid var(--fill-color);\n",
|
||
" border-color: transparent;\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" animation:\n",
|
||
" spin 1s steps(1) infinite;\n",
|
||
" }\n",
|
||
"\n",
|
||
" @keyframes spin {\n",
|
||
" 0% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" border-left-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 20% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-left-color: var(--fill-color);\n",
|
||
" border-top-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 30% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-left-color: var(--fill-color);\n",
|
||
" border-top-color: var(--fill-color);\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 40% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" border-top-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 60% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 80% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 90% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" async function quickchart(key) {\n",
|
||
" const quickchartButtonEl =\n",
|
||
" document.querySelector('#' + key + ' button');\n",
|
||
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
||
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
||
" try {\n",
|
||
" const charts = await google.colab.kernel.invokeFunction(\n",
|
||
" 'suggestCharts', [key], {});\n",
|
||
" } catch (error) {\n",
|
||
" console.error('Error during call to suggestCharts:', error);\n",
|
||
" }\n",
|
||
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
||
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
||
" }\n",
|
||
" (() => {\n",
|
||
" let quickchartButtonEl =\n",
|
||
" document.querySelector('#df-80ed0186-b00b-44aa-9399-e1401cb60ad5 button');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
" })();\n",
|
||
" </script>\n",
|
||
"</div>\n",
|
||
"\n",
|
||
" <div id=\"id_bdaa02b2-4993-422b-8713-4dedc6fb07b7\">\n",
|
||
" <style>\n",
|
||
" .colab-df-generate {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-generate:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-generate {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-generate:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('X')\"\n",
|
||
" title=\"Generate code using this dataframe.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
" <script>\n",
|
||
" (() => {\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#id_bdaa02b2-4993-422b-8713-4dedc6fb07b7 button.colab-df-generate');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" buttonEl.onclick = () => {\n",
|
||
" google.colab.notebook.generateWithVariable('X');\n",
|
||
" }\n",
|
||
" })();\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
" </div>\n",
|
||
" </div>\n"
|
||
],
|
||
"application/vnd.google.colaboratory.intrinsic+json": {
|
||
"type": "dataframe",
|
||
"variable_name": "X",
|
||
"summary": "{\n \"name\": \"X\",\n \"rows\": 1460,\n \"fields\": [\n {\n \"column\": \"area\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 9981,\n \"min\": 1300,\n \"max\": 215245,\n \"num_unique_values\": 1073,\n \"samples\": [\n 10186,\n 8163,\n 8854\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
|
||
}
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 6
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "SqxVaBO0pf1W",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 458
|
||
},
|
||
"outputId": "dfdcb6a7-44fb-4805-bb42-0085a18e0e45"
|
||
},
|
||
"source": [
|
||
"Y = dataset.price\n",
|
||
"Y"
|
||
],
|
||
"execution_count": 7,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
"0 208500\n",
|
||
"1 181500\n",
|
||
"2 223500\n",
|
||
"3 140000\n",
|
||
"4 250000\n",
|
||
" ... \n",
|
||
"1455 175000\n",
|
||
"1456 210000\n",
|
||
"1457 266500\n",
|
||
"1458 142125\n",
|
||
"1459 147500\n",
|
||
"Name: price, Length: 1460, dtype: int64"
|
||
],
|
||
"text/html": [
|
||
"<div>\n",
|
||
"<style scoped>\n",
|
||
" .dataframe tbody tr th:only-of-type {\n",
|
||
" vertical-align: middle;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe tbody tr th {\n",
|
||
" vertical-align: top;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .dataframe thead th {\n",
|
||
" text-align: right;\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"<table border=\"1\" class=\"dataframe\">\n",
|
||
" <thead>\n",
|
||
" <tr style=\"text-align: right;\">\n",
|
||
" <th></th>\n",
|
||
" <th>price</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>208500</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>181500</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>223500</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>140000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>250000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1455</th>\n",
|
||
" <td>175000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1456</th>\n",
|
||
" <td>210000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1457</th>\n",
|
||
" <td>266500</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1458</th>\n",
|
||
" <td>142125</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1459</th>\n",
|
||
" <td>147500</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>1460 rows × 1 columns</p>\n",
|
||
"</div><br><label><b>dtype:</b> int64</label>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 7
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "KsDoGjjbpmjk"
|
||
},
|
||
"source": [
|
||
"### *Training Dataset using Linear Regression*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "nKmEySI1poV_",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 80
|
||
},
|
||
"outputId": "e8b7d151-62fe-414c-b8c4-381bad76b2a6"
|
||
},
|
||
"source": [
|
||
"model = LinearRegression()\n",
|
||
"model.fit(X,Y)"
|
||
],
|
||
"execution_count": 8,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
"LinearRegression()"
|
||
],
|
||
"text/html": [
|
||
"<style>#sk-container-id-1 {\n",
|
||
" /* Definition of color scheme common for light and dark mode */\n",
|
||
" --sklearn-color-text: #000;\n",
|
||
" --sklearn-color-text-muted: #666;\n",
|
||
" --sklearn-color-line: gray;\n",
|
||
" /* Definition of color scheme for unfitted estimators */\n",
|
||
" --sklearn-color-unfitted-level-0: #fff5e6;\n",
|
||
" --sklearn-color-unfitted-level-1: #f6e4d2;\n",
|
||
" --sklearn-color-unfitted-level-2: #ffe0b3;\n",
|
||
" --sklearn-color-unfitted-level-3: chocolate;\n",
|
||
" /* Definition of color scheme for fitted estimators */\n",
|
||
" --sklearn-color-fitted-level-0: #f0f8ff;\n",
|
||
" --sklearn-color-fitted-level-1: #d4ebff;\n",
|
||
" --sklearn-color-fitted-level-2: #b3dbfd;\n",
|
||
" --sklearn-color-fitted-level-3: cornflowerblue;\n",
|
||
"\n",
|
||
" /* Specific color for light theme */\n",
|
||
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
|
||
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
|
||
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
|
||
" --sklearn-color-icon: #696969;\n",
|
||
"\n",
|
||
" @media (prefers-color-scheme: dark) {\n",
|
||
" /* Redefinition of color scheme for dark theme */\n",
|
||
" --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
|
||
" --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
|
||
" --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
|
||
" --sklearn-color-icon: #878787;\n",
|
||
" }\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 {\n",
|
||
" color: var(--sklearn-color-text);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 pre {\n",
|
||
" padding: 0;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 input.sk-hidden--visually {\n",
|
||
" border: 0;\n",
|
||
" clip: rect(1px 1px 1px 1px);\n",
|
||
" clip: rect(1px, 1px, 1px, 1px);\n",
|
||
" height: 1px;\n",
|
||
" margin: -1px;\n",
|
||
" overflow: hidden;\n",
|
||
" padding: 0;\n",
|
||
" position: absolute;\n",
|
||
" width: 1px;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-dashed-wrapped {\n",
|
||
" border: 1px dashed var(--sklearn-color-line);\n",
|
||
" margin: 0 0.4em 0.5em 0.4em;\n",
|
||
" box-sizing: border-box;\n",
|
||
" padding-bottom: 0.4em;\n",
|
||
" background-color: var(--sklearn-color-background);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-container {\n",
|
||
" /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
|
||
" but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
|
||
" so we also need the `!important` here to be able to override the\n",
|
||
" default hidden behavior on the sphinx rendered scikit-learn.org.\n",
|
||
" See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
|
||
" display: inline-block !important;\n",
|
||
" position: relative;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-text-repr-fallback {\n",
|
||
" display: none;\n",
|
||
"}\n",
|
||
"\n",
|
||
"div.sk-parallel-item,\n",
|
||
"div.sk-serial,\n",
|
||
"div.sk-item {\n",
|
||
" /* draw centered vertical line to link estimators */\n",
|
||
" background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
|
||
" background-size: 2px 100%;\n",
|
||
" background-repeat: no-repeat;\n",
|
||
" background-position: center center;\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Parallel-specific style estimator block */\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-parallel-item::after {\n",
|
||
" content: \"\";\n",
|
||
" width: 100%;\n",
|
||
" border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
|
||
" flex-grow: 1;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-parallel {\n",
|
||
" display: flex;\n",
|
||
" align-items: stretch;\n",
|
||
" justify-content: center;\n",
|
||
" background-color: var(--sklearn-color-background);\n",
|
||
" position: relative;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-parallel-item {\n",
|
||
" display: flex;\n",
|
||
" flex-direction: column;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
|
||
" align-self: flex-end;\n",
|
||
" width: 50%;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
|
||
" align-self: flex-start;\n",
|
||
" width: 50%;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
|
||
" width: 0;\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Serial-specific style estimator block */\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-serial {\n",
|
||
" display: flex;\n",
|
||
" flex-direction: column;\n",
|
||
" align-items: center;\n",
|
||
" background-color: var(--sklearn-color-background);\n",
|
||
" padding-right: 1em;\n",
|
||
" padding-left: 1em;\n",
|
||
"}\n",
|
||
"\n",
|
||
"\n",
|
||
"/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
|
||
"clickable and can be expanded/collapsed.\n",
|
||
"- Pipeline and ColumnTransformer use this feature and define the default style\n",
|
||
"- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
|
||
"*/\n",
|
||
"\n",
|
||
"/* Pipeline and ColumnTransformer style (default) */\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-toggleable {\n",
|
||
" /* Default theme specific background. It is overwritten whether we have a\n",
|
||
" specific estimator or a Pipeline/ColumnTransformer */\n",
|
||
" background-color: var(--sklearn-color-background);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Toggleable label */\n",
|
||
"#sk-container-id-1 label.sk-toggleable__label {\n",
|
||
" cursor: pointer;\n",
|
||
" display: flex;\n",
|
||
" width: 100%;\n",
|
||
" margin-bottom: 0;\n",
|
||
" padding: 0.5em;\n",
|
||
" box-sizing: border-box;\n",
|
||
" text-align: center;\n",
|
||
" align-items: start;\n",
|
||
" justify-content: space-between;\n",
|
||
" gap: 0.5em;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 label.sk-toggleable__label .caption {\n",
|
||
" font-size: 0.6rem;\n",
|
||
" font-weight: lighter;\n",
|
||
" color: var(--sklearn-color-text-muted);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
|
||
" /* Arrow on the left of the label */\n",
|
||
" content: \"▸\";\n",
|
||
" float: left;\n",
|
||
" margin-right: 0.25em;\n",
|
||
" color: var(--sklearn-color-icon);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
|
||
" color: var(--sklearn-color-text);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Toggleable content - dropdown */\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-toggleable__content {\n",
|
||
" max-height: 0;\n",
|
||
" max-width: 0;\n",
|
||
" overflow: hidden;\n",
|
||
" text-align: left;\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-0);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
|
||
" /* fitted */\n",
|
||
" background-color: var(--sklearn-color-fitted-level-0);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-toggleable__content pre {\n",
|
||
" margin: 0.2em;\n",
|
||
" border-radius: 0.25em;\n",
|
||
" color: var(--sklearn-color-text);\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-0);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-fitted-level-0);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
|
||
" /* Expand drop-down */\n",
|
||
" max-height: 200px;\n",
|
||
" max-width: 100%;\n",
|
||
" overflow: auto;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
|
||
" content: \"▾\";\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Pipeline/ColumnTransformer-specific style */\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
|
||
" color: var(--sklearn-color-text);\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
|
||
" background-color: var(--sklearn-color-fitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Estimator-specific style */\n",
|
||
"\n",
|
||
"/* Colorize estimator box */\n",
|
||
"#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
|
||
" /* fitted */\n",
|
||
" background-color: var(--sklearn-color-fitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
|
||
"#sk-container-id-1 div.sk-label label {\n",
|
||
" /* The background is the default theme color */\n",
|
||
" color: var(--sklearn-color-text-on-default-background);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* On hover, darken the color of the background */\n",
|
||
"#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
|
||
" color: var(--sklearn-color-text);\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Label box, darken color on hover, fitted */\n",
|
||
"#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
|
||
" color: var(--sklearn-color-text);\n",
|
||
" background-color: var(--sklearn-color-fitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Estimator label */\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-label label {\n",
|
||
" font-family: monospace;\n",
|
||
" font-weight: bold;\n",
|
||
" display: inline-block;\n",
|
||
" line-height: 1.2em;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-label-container {\n",
|
||
" text-align: center;\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Estimator-specific */\n",
|
||
"#sk-container-id-1 div.sk-estimator {\n",
|
||
" font-family: monospace;\n",
|
||
" border: 1px dotted var(--sklearn-color-border-box);\n",
|
||
" border-radius: 0.25em;\n",
|
||
" box-sizing: border-box;\n",
|
||
" margin-bottom: 0.5em;\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-0);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-estimator.fitted {\n",
|
||
" /* fitted */\n",
|
||
" background-color: var(--sklearn-color-fitted-level-0);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* on hover */\n",
|
||
"#sk-container-id-1 div.sk-estimator:hover {\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
|
||
" /* fitted */\n",
|
||
" background-color: var(--sklearn-color-fitted-level-2);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
|
||
"\n",
|
||
"/* Common style for \"i\" and \"?\" */\n",
|
||
"\n",
|
||
".sk-estimator-doc-link,\n",
|
||
"a:link.sk-estimator-doc-link,\n",
|
||
"a:visited.sk-estimator-doc-link {\n",
|
||
" float: right;\n",
|
||
" font-size: smaller;\n",
|
||
" line-height: 1em;\n",
|
||
" font-family: monospace;\n",
|
||
" background-color: var(--sklearn-color-background);\n",
|
||
" border-radius: 1em;\n",
|
||
" height: 1em;\n",
|
||
" width: 1em;\n",
|
||
" text-decoration: none !important;\n",
|
||
" margin-left: 0.5em;\n",
|
||
" text-align: center;\n",
|
||
" /* unfitted */\n",
|
||
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
|
||
" color: var(--sklearn-color-unfitted-level-1);\n",
|
||
"}\n",
|
||
"\n",
|
||
".sk-estimator-doc-link.fitted,\n",
|
||
"a:link.sk-estimator-doc-link.fitted,\n",
|
||
"a:visited.sk-estimator-doc-link.fitted {\n",
|
||
" /* fitted */\n",
|
||
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
|
||
" color: var(--sklearn-color-fitted-level-1);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* On hover */\n",
|
||
"div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
|
||
".sk-estimator-doc-link:hover,\n",
|
||
"div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
|
||
".sk-estimator-doc-link:hover {\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-3);\n",
|
||
" color: var(--sklearn-color-background);\n",
|
||
" text-decoration: none;\n",
|
||
"}\n",
|
||
"\n",
|
||
"div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
|
||
".sk-estimator-doc-link.fitted:hover,\n",
|
||
"div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
|
||
".sk-estimator-doc-link.fitted:hover {\n",
|
||
" /* fitted */\n",
|
||
" background-color: var(--sklearn-color-fitted-level-3);\n",
|
||
" color: var(--sklearn-color-background);\n",
|
||
" text-decoration: none;\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* Span, style for the box shown on hovering the info icon */\n",
|
||
".sk-estimator-doc-link span {\n",
|
||
" display: none;\n",
|
||
" z-index: 9999;\n",
|
||
" position: relative;\n",
|
||
" font-weight: normal;\n",
|
||
" right: .2ex;\n",
|
||
" padding: .5ex;\n",
|
||
" margin: .5ex;\n",
|
||
" width: min-content;\n",
|
||
" min-width: 20ex;\n",
|
||
" max-width: 50ex;\n",
|
||
" color: var(--sklearn-color-text);\n",
|
||
" box-shadow: 2pt 2pt 4pt #999;\n",
|
||
" /* unfitted */\n",
|
||
" background: var(--sklearn-color-unfitted-level-0);\n",
|
||
" border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
|
||
"}\n",
|
||
"\n",
|
||
".sk-estimator-doc-link.fitted span {\n",
|
||
" /* fitted */\n",
|
||
" background: var(--sklearn-color-fitted-level-0);\n",
|
||
" border: var(--sklearn-color-fitted-level-3);\n",
|
||
"}\n",
|
||
"\n",
|
||
".sk-estimator-doc-link:hover span {\n",
|
||
" display: block;\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* \"?\"-specific style due to the `<a>` HTML tag */\n",
|
||
"\n",
|
||
"#sk-container-id-1 a.estimator_doc_link {\n",
|
||
" float: right;\n",
|
||
" font-size: 1rem;\n",
|
||
" line-height: 1em;\n",
|
||
" font-family: monospace;\n",
|
||
" background-color: var(--sklearn-color-background);\n",
|
||
" border-radius: 1rem;\n",
|
||
" height: 1rem;\n",
|
||
" width: 1rem;\n",
|
||
" text-decoration: none;\n",
|
||
" /* unfitted */\n",
|
||
" color: var(--sklearn-color-unfitted-level-1);\n",
|
||
" border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 a.estimator_doc_link.fitted {\n",
|
||
" /* fitted */\n",
|
||
" border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
|
||
" color: var(--sklearn-color-fitted-level-1);\n",
|
||
"}\n",
|
||
"\n",
|
||
"/* On hover */\n",
|
||
"#sk-container-id-1 a.estimator_doc_link:hover {\n",
|
||
" /* unfitted */\n",
|
||
" background-color: var(--sklearn-color-unfitted-level-3);\n",
|
||
" color: var(--sklearn-color-background);\n",
|
||
" text-decoration: none;\n",
|
||
"}\n",
|
||
"\n",
|
||
"#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
|
||
" /* fitted */\n",
|
||
" background-color: var(--sklearn-color-fitted-level-3);\n",
|
||
"}\n",
|
||
"</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>LinearRegression</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.linear_model.LinearRegression.html\">?<span>Documentation for LinearRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>LinearRegression()</pre></div> </div></div></div></div>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"execution_count": 8
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "n-UeFqpGpw9p"
|
||
},
|
||
"source": [
|
||
"### *Predicted Price for Land sq.Feet of custom values*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "Ollo3wTcpyKQ",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "365ec852-2686-4b53-85ec-56783730f77f"
|
||
},
|
||
"source": [
|
||
"x=2400\n",
|
||
"LandAreainSqFt=[[x]]\n",
|
||
"PredictedmodelResult = model.predict(LandAreainSqFt)\n",
|
||
"print(PredictedmodelResult)"
|
||
],
|
||
"execution_count": 13,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"[163876.08458098]\n"
|
||
]
|
||
},
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stderr",
|
||
"text": [
|
||
"/usr/local/lib/python3.11/dist-packages/sklearn/utils/validation.py:2739: UserWarning: X does not have valid feature names, but LinearRegression was fitted with feature names\n",
|
||
" warnings.warn(\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "1PbTSCtSp3lC"
|
||
},
|
||
"source": [
|
||
"### Let's check is our model is Right ?\n",
|
||
"### Theory Calculation\n",
|
||
"### Y = m * X + b (m is coefficient and b is intercept)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "T5eVVDPvp8Hc"
|
||
},
|
||
"source": [
|
||
"*Coefficient - m*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "1SvYtiI2p4ZB",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "d9726623-f842-4474-e680-d61ca7cefa09"
|
||
},
|
||
"source": [
|
||
"m=model.coef_\n",
|
||
"print(m)"
|
||
],
|
||
"execution_count": 14,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"[2.09997195]\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "nSXLgArvqBu2"
|
||
},
|
||
"source": [
|
||
"*Intercept - b*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "mxyroJ6uqCet",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "f8bfef10-61d7-456b-e860-0eb4bf5a047a"
|
||
},
|
||
"source": [
|
||
"b=model.intercept_\n",
|
||
"print(b)"
|
||
],
|
||
"execution_count": 15,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"158836.1518968766\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "VCLG6YIOqEaX"
|
||
},
|
||
"source": [
|
||
"### Y=mx+b\n",
|
||
"*x is Independant variable - Input - area*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "kRHG8tUFqO1i",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "83287893-80dc-4c5c-d20b-595ac364519b"
|
||
},
|
||
"source": [
|
||
"y = m*x + b\n",
|
||
"print(\"The Price of {0} Square feet Land is: {1}\".format(x,y[0]))"
|
||
],
|
||
"execution_count": 16,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"The Price of 2400 Square feet Land is: 163876.08458097503\n"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
} |