Skip to content

Instantly share code, notes, and snippets.

@LuxXx
Last active August 20, 2020 16:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LuxXx/646ef8152c71115b10cf39f6a42cc127 to your computer and use it in GitHub Desktop.
Save LuxXx/646ef8152c71115b10cf39f6a42cc127 to your computer and use it in GitHub Desktop.
Lineares Modell in numpy
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"N = 16"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"x = np.arange(N)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"y = (lambda x: x*x)(x) + np.random.normal(0, N, N)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(x, y);"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def model(t):\n",
" return np.array([1, t, t*t])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 1, 0, 0],\n",
" [ 1, 1, 1],\n",
" [ 1, 2, 4],\n",
" [ 1, 3, 9],\n",
" [ 1, 4, 16],\n",
" [ 1, 5, 25],\n",
" [ 1, 6, 36],\n",
" [ 1, 7, 49],\n",
" [ 1, 8, 64],\n",
" [ 1, 9, 81],\n",
" [ 1, 10, 100],\n",
" [ 1, 11, 121],\n",
" [ 1, 12, 144],\n",
" [ 1, 13, 169],\n",
" [ 1, 14, 196],\n",
" [ 1, 15, 225]])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X = [model(k) for k in range(N)]\n",
"X = np.array(X)\n",
"X"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"gamma = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def estimate(t):\n",
" return np.array(model(t)).dot(gamma)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(np.linspace(0, N, 100), estimate(np.linspace(0, N, 100)))\n",
"plt.scatter(x, y);"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment