DeepSeek-Coder/13_Salary_prediction_using_POLYNOMIAL_REGRESSION.ipynb
2025-02-25 05:00:41 -08:00

1484 lines
116 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/13_Salary_prediction_using_POLYNOMIAL_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": "NdHIE4CSDCp3"
},
"source": [
"# **Day-13 | Salary prediction using POLYNOMIAL REGRESSION**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1NTrKL3eIgZ8"
},
"source": [
"### *Importing Libraries*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ae6Pxuc-CNeu"
},
"source": [
"import pandas as pd"
],
"execution_count": 1,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "6oo4HsbHInXM"
},
"source": [
"### *Load Dataset from Local directory*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "w0WCVounIsJ5",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 73
},
"outputId": "9bc9721c-cb3d-4eb4-9980-bc718843ae51"
},
"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-cfe37a57-0bf0-4102-b0f2-c94b4fb31209\" name=\"files[]\" multiple disabled\n",
" style=\"border:none\" />\n",
" <output id=\"result-cfe37a57-0bf0-4102-b0f2-c94b4fb31209\">\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": "NHijCKx7I0k8"
},
"source": [
"### *Load Dataset*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "zxBak91bI2yh"
},
"source": [
"dataset = pd.read_csv('dataset.csv')"
],
"execution_count": 3,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "5XKSRUPWI5Q-"
},
"source": [
"### *Summarize Dataset*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "63BR2xiKI7oZ",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "8825f8c4-be20-46df-a04b-30805d3c2006"
},
"source": [
"print(dataset.shape)\n",
"print(dataset.head(5))"
],
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"(10, 2)\n",
" Level Salary\n",
"0 1 45000\n",
"1 2 50000\n",
"2 3 60000\n",
"3 4 80000\n",
"4 5 110000\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Zv8cn1g8Jix-"
},
"source": [
"### *Segregate Dataset into Input X & Output Y*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "iR3g4pDjJoj9",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "3ed244e4-9388-44eb-ca55-a8f6390ce4f0"
},
"source": [
"X = dataset.iloc[:, :-1].values\n",
"X"
],
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[ 1],\n",
" [ 2],\n",
" [ 3],\n",
" [ 4],\n",
" [ 5],\n",
" [ 6],\n",
" [ 7],\n",
" [ 8],\n",
" [ 9],\n",
" [10]])"
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "LyJ8ghMFKcMe",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "ffd6526c-59be-44ed-dfb5-70cfd8aa55d5"
},
"source": [
"Y = dataset.iloc[:, -1].values\n",
"Y"
],
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([ 45000, 50000, 60000, 80000, 110000, 150000, 200000,\n",
" 300000, 500000, 1000000])"
]
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XP-L6ZRyL30I"
},
"source": [
"### *Training Dataset using Linear Regression*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "c4x1C89ZVjr9",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 80
},
"outputId": "5b5e0c7c-79ca-41aa-ca77-f21d0add3ac7"
},
"source": [
"from sklearn.linear_model import LinearRegression\n",
"modelLR = LinearRegression()\n",
"modelLR.fit(X,Y)"
],
"execution_count": 7,
"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": 7
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1QIRCVJDYPcx"
},
"source": [
"### *Visualizing Linear Regression results*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "OX7tg4mZVori",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 472
},
"outputId": "e7ab1f34-cb26-40eb-a15d-f9e7f32093f4"
},
"source": [
"import matplotlib.pyplot as plt\n",
"plt.scatter(X,Y, color=\"red\")\n",
"plt.plot(X, modelLR.predict(X))\n",
"plt.title(\"Linear Regression\")\n",
"plt.xlabel(\"Level\")\n",
"plt.ylabel(\"Salary\")\n",
"plt.show()"
],
"execution_count": 8,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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5pwt0aVLF5577jlSU1Np0aIFrVu35tZbb2XVqlU8++yzdOnShYMHD5KZmUnHjh255pprcDgcXHrppfj5+TF9+nQcDgdjxowhICCAzz//3OSzE5H/FRYWxh133EFcXBy7du1i9uzZlJWV8d1335GYmGh2eSJSi5p0uFm6dCmpqamntY8YMYL58+dTUVHB3//+d1577TUKCgoICgqiZ8+eTJkyhQ4dOgCwd+9exo4dy+eff46vry8DBw7k2WefpUWLFvV9OiLyK0aOHEl2djb79+/HZrPRq1cvnnzyyTPey0lEGq8mHW5ERETE9WidGxEREXEpCjciIiLiUprcbCmHw8HevXvx9/fHYrGYXY6IiIicBcMwKCkpITw8HDe3X++baXLhZu/evURFRZldhoiIiJyH3bt3ExkZ+avbNLlwc+qGc7t37yYgIMDkakRERORsFBcXExUVVe3GsWfS5MLNqUtRAQEBCjciIiKNzNkMKdGAYhEREXEpCjciIiLiUhRuRERExKUo3IiIiIhLUbgRERERl6JwIyIiIi5F4UZERERcisKNiIiIuBSFGxEREXEpTW6FYhEREakjdjusWAH79kFYGCQng9Va72WY2nOzfPlyBg0aRHh4OBaLhcWLF//mPkuXLqVr167YbDYSEhKYP39+ndcpIiIiv2HRIoiJgdRUuOWWqv/GxFS11zNTw01paSmdOnVi5syZZ7V9Xl4e11xzDampqWzYsIH777+fu+++m88++6yOKxUREZEzWrQIhg6FPXuqtxcUVLXXc8CxGIZh1OsRz8BisfD+++8zePDgM27z0EMP8fHHH7N582Zn27Bhwzh69ChLliw5q+MUFxcTGBhIUVGRbpwpIiJyoez2qh6aXwabUywWiIyEvLwLukR1Lp/fjWpA8erVq+nfv3+1tgEDBrB69eoz7lNWVkZxcXG1LxEREaklK1acOdgAGAbs3l21XT1pVOFm//79hISEVGsLCQmhuLiYEydO1LjP1KlTCQwMdH5FRUXVR6kiIiJNw759tbtdLWhU4eZ8TJo0iaKiIufX7t27zS5JRETEdYSF1e52taBRTQUPDQ2lsLCwWlthYSEBAQF4e3vXuI/NZsNms9VHeSIiIk1PcnLVmJqCgqpLUL90asxNcnK9ldSoem569epFZmZmtbYvvviCXr16mVSRiIhIE2e1wvPPV/2/xVL9uVOPp0+v1/VuTA03x44dY8OGDWzYsAGomuq9YcMG8vPzgapLSrfffrtz+3vvvZfc3FwefPBBtm7dyqxZs3jnnXeYMGGCGeWLiIgIwJAhsHAhRERUb4+MrGofMqReyzF1KvjSpUtJTU09rX3EiBHMnz+fO+64g507d7J06dJq+0yYMIEff/yRyMhIHnnkEe64446zPqamgouIiNSROlyh+Fw+vxvMOjf1ReFGRESk8XHZdW5EREREfovCjYiIiLgUhRsRERFxKQo3IiIi4lIUbkRERMSlKNyIiIiIS1G4EREREZeicCMiIiIuReFGREREXIrCjYiIiLgUhRsRERFxKQo3IiIi4lIUbkRERMSlKNyIiIiIS1G4EREREZeicCMiIiIuReFGREREXIrCjYiIiLgUhRsRERFxKQo3IiIi4lIUbkRERMSlKNyIiIiIS1G4EREREZeicCMiIiIuReFGREREXIrCjYiIiLgUhRsRERFxKQo3IiIi4lIUbkRERMSlKNyIiIiIS1G4EREREZeicCMiIiIuReFGREREXIrCjYiIiLgUhRsRERFxKQo3IiIi4lIUbkRERMSlKNyIiIiIS1G4EREREZeicCMiIiIuReFGREREXIrCjYiIiLgUhRsRERFxKQo3IiIi4lIUbkRERMSlKNyIiIiIS1G4EREREZeicCMiIiIuReFGREREXIrp4WbmzJnExMTg5eVFUlISa9eu/dXtp0+fzsUXX4y3tzdRUVFMmDCBkydP1lO1IiIi0tCZGm7efvttJk6cyOTJk1m/fj2dOnViwIABHDhwoMbtFyxYwMMPP8zkyZPZsmULr7zyCm+//TZ//vOf67lyERERaahMDTfPPfcc99xzDyNHjqRt27bMmTMHHx8f5s2bV+P2X331FX369OGWW24hJiaGK6+8kptvvvk3e3tERESk6TAt3JSXl7Nu3Tr69+//32Lc3Ojfvz+rV6+ucZ/evXuzbt06Z5jJzc3lk08+4eqrrz7jccrKyiguLq72JSIiIq7L3awDHzp0CLvdTkhISLX2kJAQtm7dWuM+t9xyC4cOHeKyyy7DMAwqKyu59957f/Wy1NSpU5kyZUqt1i4iIiINl+kDis/F0qVLefLJJ5k1axbr169n0aJFfPzxxzz++ONn3GfSpEkUFRU5v3bv3l2PFYuIiEh9M63nJigoCKvVSmFhYbX2wsJCQkNDa9znkUce4bbbbuPuu+8GoEOHDpSWlvKHP/yBv/zlL7i5nZ7VbDYbNput9k9AREREGiTTem48PT3p1q0bmZmZzjaHw0FmZia9evWqcZ/jx4+fFmCsVisAhmHUXbEiIiLSaJjWcwMwceJERowYQffu3enRowfTp0+ntLSUkSNHAnD77bcTERHB1KlTARg0aBDPPfccXbp0ISkpiZycHB555BEGDRrkDDkiIiLStJkabm666SYOHjzIo48+yv79++ncuTNLlixxDjLOz8+v1lPz17/+FYvFwl//+lcKCgpo1aoVgwYN4oknnjDrFERERKSBsRhN7HpOcXExgYGBFBUVERAQYHY5IiIichbO5fO7Uc2WEhEREfktCjciIiLiUhRuRERExKUo3IiIiIhLUbgRERERl6JwIyIiIi5F4UZERERcisKNiIiIuBSFGxEREXEpCjciIiLiUhRuRERExKUo3IiIiIhLUbgRERERl6JwIyIiIi5F4UZERERcisKNiIiIuBSFGxEREXEpCjciIiLiUhRuRERExKUo3IiIiIhLUbgRERERl6JwIyIiIi5F4UZERERcisKNiIiIuBSFGxEREXEpCjciIiLiUhRuRERExKUo3IiIiIhLUbgRERERl6JwIyIiIi5F4UZERERcisKNiIiIuBSFGxEREXEpCjciIiLiUhRuRERExKUo3IiIiIhLUbgRERERl6JwIyIiIi5F4UZERERcisKNiIiIuBSFGxEREXEpCjciIiLiUhRuRERExKUo3IiIiIhLUbgRERERl6JwIyIiIi5F4UZERERcisKNiIiIuBSFGxEREakVe34+zl8Xb2LBmnxT6zA93MycOZOYmBi8vLxISkpi7dq1v7r90aNHGTNmDGFhYdhsNi666CI++eSTeqpWREREfmnnoVIeXLiRfk8v5V9f5zMjazvllQ7T6nE37cjA22+/zcSJE5kzZw5JSUlMnz6dAQMGsG3bNoKDg0/bvry8nCuuuILg4GAWLlxIREQEu3btolmzZvVfvIiISBOXc6CEjKwc/r1xLw6jqq1PQkvSUxPxsFpMq8tiGIZh1sGTkpK49NJLycjIAMDhcBAVFcXYsWN5+OGHT9t+zpw5PP3002zduhUPD4/zOmZxcTGBgYEUFRUREBBwQfWLiIg0RT/uLSYjezufbt7PqRSR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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "5uGPFul3meTJ"
},
"source": [
"### *fit() - Training Model - Calculating the initial parameters*\n",
"\n",
"### *transform() - After Training we gonna transform Data by using above calculated values*\n",
"\n",
"### *fit_transform() - First fit & Transform*\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "hZsunqlaYh94"
},
"source": [
"###*Convert X to Polynomial Format (X^n)*\n",
"###*n-degree*\n",
"###*n=2 consist x & x^2*\n",
"###*n=3 consist x & x^2 & x^3*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "7jalKVwtL5Gq"
},
"source": [
"from sklearn.preprocessing import PolynomialFeatures\n",
"modelPR = PolynomialFeatures(degree = 4)\n",
"xPoly = modelPR.fit_transform(X)"
],
"execution_count": 9,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "0bDl6FGFb0tP"
},
"source": [
"###*Train same Linear Regression with X-Polynomial instead of X*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "rET2XIDYWbb7",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 80
},
"outputId": "8640b7af-4a88-4fbb-a95c-00c855573652"
},
"source": [
"modelPLR = LinearRegression()\n",
"modelPLR.fit(xPoly,Y)"
],
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"LinearRegression()"
],
"text/html": [
"<style>#sk-container-id-2 {\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-2 {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"#sk-container-id-2 pre {\n",
" padding: 0;\n",
"}\n",
"\n",
"#sk-container-id-2 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-2 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-2 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-2 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-2 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-2 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-2 div.sk-parallel-item {\n",
" display: flex;\n",
" flex-direction: column;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
" align-self: flex-end;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
" align-self: flex-start;\n",
" width: 50%;\n",
"}\n",
"\n",
"#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
" width: 0;\n",
"}\n",
"\n",
"/* Serial-specific style estimator block */\n",
"\n",
"#sk-container-id-2 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-2 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-2 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-2 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-2 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-2 label.sk-toggleable__label-arrow:hover:before {\n",
" color: var(--sklearn-color-text);\n",
"}\n",
"\n",
"/* Toggleable content - dropdown */\n",
"\n",
"#sk-container-id-2 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-2 div.sk-toggleable__content.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-2 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-2 div.sk-toggleable__content.fitted pre {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"#sk-container-id-2 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-2 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-2 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-2 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-2 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-2 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-2 div.sk-label label.sk-toggleable__label,\n",
"#sk-container-id-2 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-2 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-2 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-2 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-2 div.sk-label-container {\n",
" text-align: center;\n",
"}\n",
"\n",
"/* Estimator-specific */\n",
"#sk-container-id-2 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-2 div.sk-estimator.fitted {\n",
" /* fitted */\n",
" background-color: var(--sklearn-color-fitted-level-0);\n",
"}\n",
"\n",
"/* on hover */\n",
"#sk-container-id-2 div.sk-estimator:hover {\n",
" /* unfitted */\n",
" background-color: var(--sklearn-color-unfitted-level-2);\n",
"}\n",
"\n",
"#sk-container-id-2 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-2 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-2 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-2 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-2 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-2\" 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-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" 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": 10
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WHkfO4LChDBl"
},
"source": [
"### *Visualizing Polynomial Regression results*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "JZZOZyQ6We2w",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 472
},
"outputId": "46259691-7131-47e2-a5ef-5030b9dff7aa"
},
"source": [
"plt.scatter(X,Y, color=\"red\")\n",
"plt.plot(X, modelPLR.predict(modelPR.fit_transform(X)))\n",
"plt.title(\"Polynomial Regression\")\n",
"plt.xlabel(\"Level\")\n",
"plt.ylabel(\"Salary\")\n",
"plt.show()"
],
"execution_count": 11,
"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": "4YOj1wVjerek"
},
"source": [
"### *Prediction using Polynomial Regression*"
]
},
{
"cell_type": "code",
"metadata": {
"id": "mt_Z7EDqWhdB",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "d9f465b4-8c40-4849-8334-9131da26b2ca"
},
"source": [
"x=5\n",
"salaryPred = modelPLR.predict(modelPR.fit_transform([[x]]))\n",
"print('Salary of a person with Level {0} is {1}'.format(x,salaryPred))"
],
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Salary of a person with Level 5 is [121724.94172495]\n"
]
}
]
}
]
}