Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
lazy-programmer-courses
/
linear-regression
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
135f02d8
authored
Aug 01, 2018
by
Paktalin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
class 34 is done
parent
e216fde5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
320 additions
and
0 deletions
.ipynb_checkpoints/12_l1_regularization-checkpoint.ipynb
12_l1_regularization.ipynb
.ipynb_checkpoints/12_l1_regularization-checkpoint.ipynb
0 → 100644
View file @
135f02d8
{
"cells": [
{
"cell_type": "code",
"execution_count": 154,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from jupyterthemes import jtplot\n",
"jtplot.style(theme='gruvboxd')"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [],
"source": [
"N = 50\n",
"D = 50"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {},
"outputs": [],
"source": [
"X = (np.random.random((N, D)) - 0.5) * 10\n",
"true_w = np.array([1, 0.5, -0.5] + [0]*(D-3))"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {},
"outputs": [],
"source": [
"Y = X.dot(true_w) + np.random.randn(N)*0.5"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {},
"outputs": [],
"source": [
"MSEs = []\n",
"w = np.random.randn(D) / np.sqrt(D)"
]
},
{
"cell_type": "code",
"execution_count": 159,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"final MSE is 0.13998787535698537\n"
]
}
],
"source": [
"epochs = 100\n",
"lr = 0.0005\n",
"l1 = 10.0\n",
"for t in range(epochs):\n",
" Yhat = X.dot(w)\n",
" delta = Yhat - Y\n",
" w = w - lr*(X.T.dot(delta) + np.sign(w)*l1)\n",
" mse = delta.dot(delta) / N\n",
" MSEs.append(mse)\n",
"print('final MSE is', MSEs[len(MSEs)-1])"
]
},
{
"cell_type": "code",
"execution_count": 160,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 460.8x403.2 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(MSEs)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 460.8x403.2 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(true_w, label='true w')\n",
"plt.plot(w, label='w_map')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
12_l1_regularization.ipynb
0 → 100644
View file @
135f02d8
{
"cells": [
{
"cell_type": "code",
"execution_count": 154,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from jupyterthemes import jtplot\n",
"jtplot.style(theme='gruvboxd')"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [],
"source": [
"N = 50\n",
"D = 50"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {},
"outputs": [],
"source": [
"X = (np.random.random((N, D)) - 0.5) * 10\n",
"true_w = np.array([1, 0.5, -0.5] + [0]*(D-3))"
]
},
{
"cell_type": "code",
"execution_count": 157,
"metadata": {},
"outputs": [],
"source": [
"Y = X.dot(true_w) + np.random.randn(N)*0.5"
]
},
{
"cell_type": "code",
"execution_count": 158,
"metadata": {},
"outputs": [],
"source": [
"MSEs = []\n",
"w = np.random.randn(D) / np.sqrt(D)"
]
},
{
"cell_type": "code",
"execution_count": 159,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"final MSE is 0.13998787535698537\n"
]
}
],
"source": [
"epochs = 100\n",
"lr = 0.0005\n",
"l1 = 10.0\n",
"for t in range(epochs):\n",
" Yhat = X.dot(w)\n",
" delta = Yhat - Y\n",
" w = w - lr*(X.T.dot(delta) + np.sign(w)*l1)\n",
" mse = delta.dot(delta) / N\n",
" MSEs.append(mse)\n",
"print('final MSE is', MSEs[len(MSEs)-1])"
]
},
{
"cell_type": "code",
"execution_count": 160,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 460.8x403.2 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(MSEs)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 161,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 460.8x403.2 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(true_w, label='true w')\n",
"plt.plot(w, label='w_map')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment