mirror of
https://github.com/deepseek-ai/DeepSeek-Coder
synced 2025-04-13 20:11:16 +00:00
1943 lines
295 KiB
Plaintext
1943 lines
295 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/17_EvaluatingRegressionModelUsingRSquaredAdjustedRSquared.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-17 Evaluating Regression ModelUsing RSquared & Adjusted R Squared**"
|
||
]
|
||
},
|
||
{
|
||
"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": "f83991a7-4656-4ef5-d91b-b4040836e959"
|
||
},
|
||
"source": [
|
||
"from google.colab import files\n",
|
||
"uploaded = files.upload()"
|
||
],
|
||
"execution_count": 6,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<IPython.core.display.HTML object>"
|
||
],
|
||
"text/html": [
|
||
"\n",
|
||
" <input type=\"file\" id=\"files-77b3470b-f762-4a9f-809b-786be5aa3b86\" name=\"files[]\" multiple disabled\n",
|
||
" style=\"border:none\" />\n",
|
||
" <output id=\"result-77b3470b-f762-4a9f-809b-786be5aa3b86\">\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 dataset2.csv to dataset2.csv\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "6gXowmSom462"
|
||
},
|
||
"source": [
|
||
"### *Load Dataset*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "6JLDHSdym6wP"
|
||
},
|
||
"source": [
|
||
"dataset = pd.read_csv('dataset2.csv')"
|
||
],
|
||
"execution_count": 8,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "-DdkIy1ZnDfA"
|
||
},
|
||
"source": [
|
||
"### *Load Summarize*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "OlElQViRnGFp",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "47fe7368-7bcd-4192-f97e-ab3f8a7e9ca9"
|
||
},
|
||
"source": [
|
||
"print(dataset.shape)\n",
|
||
"print(dataset.head(5))"
|
||
],
|
||
"execution_count": 9,
|
||
"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": 297
|
||
},
|
||
"outputId": "25c3c112-0fd4-4df5-dd8b-0969d42ad9ac"
|
||
},
|
||
"source": [
|
||
"plt.xlabel('area')\n",
|
||
"plt.ylabel('price')\n",
|
||
"plt.scatter(dataset.area,dataset.price,color='red',marker='*')"
|
||
],
|
||
"execution_count": null,
|
||
"outputs": [
|
||
{
|
||
"output_type": "execute_result",
|
||
"data": {
|
||
"text/plain": [
|
||
"<matplotlib.collections.PathCollection at 0x7f5a6be79590>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"tags": []
|
||
},
|
||
"execution_count": 84
|
||
},
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"image/png": "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\n",
|
||
"text/plain": [
|
||
"<Figure size 432x288 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {
|
||
"tags": [],
|
||
"needs_background": "light"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"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": 423
|
||
},
|
||
"outputId": "015c4e7f-6fca-4c7f-e55f-b6b6579c32b2"
|
||
},
|
||
"source": [
|
||
"X = dataset.drop('price',axis='columns')\n",
|
||
"X"
|
||
],
|
||
"execution_count": 10,
|
||
"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-4709863e-3824-46e5-9bc8-f2d343a16ab3\" 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-4709863e-3824-46e5-9bc8-f2d343a16ab3')\"\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-4709863e-3824-46e5-9bc8-f2d343a16ab3 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-4709863e-3824-46e5-9bc8-f2d343a16ab3');\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-245d8442-9715-498c-9564-bb3b466bbf5c\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-245d8442-9715-498c-9564-bb3b466bbf5c')\"\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-245d8442-9715-498c-9564-bb3b466bbf5c button');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
" })();\n",
|
||
" </script>\n",
|
||
"</div>\n",
|
||
"\n",
|
||
" <div id=\"id_ad39a929-9dc6-4d40-91e9-087127ca854c\">\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_ad39a929-9dc6-4d40-91e9-087127ca854c 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": 10
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"source": [],
|
||
"metadata": {
|
||
"id": "bNdWVV8BWrUa"
|
||
},
|
||
"execution_count": null,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"source": [
|
||
"X = dataset.drop('price',axis='columns')\n",
|
||
"X"
|
||
],
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 423
|
||
},
|
||
"id": "xdFdtYHjW3wX",
|
||
"outputId": "4bb0bb16-82d8-4d91-90b3-aa740cb93f80"
|
||
},
|
||
"execution_count": 14,
|
||
"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-fadfc441-2495-4553-8f22-4ec31e91f3ee\" 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-fadfc441-2495-4553-8f22-4ec31e91f3ee')\"\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-fadfc441-2495-4553-8f22-4ec31e91f3ee 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-fadfc441-2495-4553-8f22-4ec31e91f3ee');\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-db30f7e5-47e2-4478-99e0-e3dbf18c6afa\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-db30f7e5-47e2-4478-99e0-e3dbf18c6afa')\"\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-db30f7e5-47e2-4478-99e0-e3dbf18c6afa button');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
" })();\n",
|
||
" </script>\n",
|
||
"</div>\n",
|
||
"\n",
|
||
" <div id=\"id_d9f113a9-4486-4411-9a9b-3f21ac12df87\">\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_d9f113a9-4486-4411-9a9b-3f21ac12df87 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": 14
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "SqxVaBO0pf1W",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 458
|
||
},
|
||
"outputId": "bcf7ef7e-01d8-43c1-92d0-49c7820b5a38"
|
||
},
|
||
"source": [
|
||
"Y = dataset.price\n",
|
||
"Y"
|
||
],
|
||
"execution_count": 13,
|
||
"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": 13
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "NshR5GFxetKm"
|
||
},
|
||
"source": [
|
||
"### *Splitting Dataset for Testing our Model*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "dT6utuqCeu1t"
|
||
},
|
||
"source": [
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=0.20,random_state=0)"
|
||
],
|
||
"execution_count": 16,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"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": "b7c49320-c5d1-4507-981f-eef176ab1f5f"
|
||
},
|
||
"source": [
|
||
"model = LinearRegression()\n",
|
||
"model.fit(x_train,y_train)"
|
||
],
|
||
"execution_count": 17,
|
||
"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": 17
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "SU6VFaOpcIX3"
|
||
},
|
||
"source": [
|
||
"### *Visualizing Linear Regression results*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "U-3oeqm8cKy_",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 472
|
||
},
|
||
"outputId": "ff4185eb-e340-4dd1-cb0e-28ae50ae76b9"
|
||
},
|
||
"source": [
|
||
"plt.scatter(X,Y, color=\"red\",marker='*')\n",
|
||
"plt.plot(X, model.predict(X))\n",
|
||
"plt.title(\"Linear Regression\")\n",
|
||
"plt.xlabel(\"Area\")\n",
|
||
"plt.ylabel(\"Price\")\n",
|
||
"plt.show()"
|
||
],
|
||
"execution_count": 18,
|
||
"outputs": [
|
||
{
|
||
"output_type": "display_data",
|
||
"data": {
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 1 Axes>"
|
||
],
|
||
"image/png": "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\n"
|
||
},
|
||
"metadata": {}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "1PbTSCtSp3lC"
|
||
},
|
||
"source": [
|
||
"\n",
|
||
"\n",
|
||
"R Squared = 1- (SSR/SST)\n",
|
||
"\n",
|
||
"where,\n",
|
||
"SSR = Sum of Squared Residuals\n",
|
||
"\n",
|
||
"SST = Sum of Squared Total\n",
|
||
"\n",
|
||
"Adjusted R Squared= 1 — [(1 — R Squared) * ((n-1) / (n-p-1))]\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "T5eVVDPvp8Hc"
|
||
},
|
||
"source": [
|
||
"### *R-Squared Score*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "1SvYtiI2p4ZB",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "77ebb001-7d5a-4ff3-cca7-d1b056a5c1b8"
|
||
},
|
||
"source": [
|
||
"rsquared = model.score(x_test, y_test)\n",
|
||
"print(rsquared)"
|
||
],
|
||
"execution_count": 19,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"0.08557014199167645\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "Bi-ZZRlTgeDu"
|
||
},
|
||
"source": [
|
||
"### *Adjusted R Squared of the Model*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "pHBIIF6cgYSw",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "483be049-7759-431b-ed6a-a134551cf66e"
|
||
},
|
||
"source": [
|
||
"n=len(dataset) #Length of Total dataset\n",
|
||
"p=len(dataset.columns)-1 #length of Features\n",
|
||
"adjr= 1-(1-rsquared)*(n-1)/(n-p-1)\n",
|
||
"print(adjr)"
|
||
],
|
||
"execution_count": 20,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"0.08494296101910559\n"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "JNMw25wulk02"
|
||
},
|
||
"source": [
|
||
"### *Prediction*"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "RTyc02CLlZuD",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"outputId": "b48a1b26-d0c2-4591-a85c-e172c587fb17"
|
||
},
|
||
"source": [
|
||
"x=6500\n",
|
||
"LandAreainSqFt=[[x]]\n",
|
||
"PredictedmodelResult = model.predict(LandAreainSqFt)\n",
|
||
"print(PredictedmodelResult)"
|
||
],
|
||
"execution_count": 21,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"name": "stdout",
|
||
"text": [
|
||
"[173227.94685863]\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"
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
} |