Last active
January 10, 2022 17:54
-
-
Save brianspiering/a7444f66ab15baac1d8c77b673993c63 to your computer and use it in GitHub Desktop.
Negative R² example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"id": "c7f2bf2c", | |
"metadata": { | |
"toc": true | |
}, | |
"source": [ | |
"<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n", | |
"<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Negative-R²-Example\" data-toc-modified-id=\"Negative-R²-Example-1\">Negative R² Example</a></span></li></ul></div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "c32c305e", | |
"metadata": {}, | |
"source": [ | |
"Negative R² Example\n", | |
"==========" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 108, | |
"id": "82b2e80f", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"reset -fs" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 109, | |
"id": "690ad3c4", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n", | |
"from sklearn.linear_model import LinearRegression\n", | |
"from sklearn.metrics import r2_score\n", | |
"\n", | |
"palette = \"Dark2\"\n", | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 110, | |
"id": "cf64b16a", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"-1.7692307692307683" | |
] | |
}, | |
"execution_count": 110, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"X = np.linspace(0, 10, 7).reshape(-1, 1)\n", | |
"y = X+10\n", | |
"\n", | |
"lr = LinearRegression(fit_intercept=False) # Constrain intercept to be zero\n", | |
"lr.fit(X, y)\n", | |
"y_pred = lr.predict(X)\n", | |
"r2_score(y, y_pred)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 111, | |
"id": "62e1f803", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# Plot outputs\n", | |
"plt.scatter(X, y, color=\"black\")\n", | |
"plt.plot(X, y_pred, color=\"blue\", linewidth=3)\n", | |
"plt.xticks(())\n", | |
"plt.yticks(())\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "71791314", | |
"metadata": {}, | |
"source": [ | |
"<br>\n", | |
"<br> \n", | |
"<br>\n", | |
"\n", | |
"----" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (ipykernel)", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.8.12" | |
}, | |
"toc": { | |
"base_numbering": 1, | |
"nav_menu": {}, | |
"number_sections": false, | |
"sideBar": false, | |
"skip_h1_title": false, | |
"title_cell": "Table of Contents", | |
"title_sidebar": "Contents", | |
"toc_cell": true, | |
"toc_position": {}, | |
"toc_section_display": true, | |
"toc_window_display": false | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment