Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
986 changes: 966 additions & 20 deletions your-code/lab_boston_housing.ipynb

Large diffs are not rendered by default.

186 changes: 169 additions & 17 deletions your-code/lab_overfitting.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
Expand Down Expand Up @@ -56,11 +56,32 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 2,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(steps=[('standardscaler', StandardScaler()),\n",
" ('svc', SVC(gamma='auto'))])"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Your code here\n"
"# Your code here\n",
"import numpy as np\n",
"from sklearn.pipeline import make_pipeline\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.svm import SVC\n",
"from sklearn.pipeline import Pipeline\n",
"classifiers = make_pipeline(StandardScaler(), SVC(gamma='auto'))\n",
"classifiers.fit(X, y)\n",
"Pipeline(steps=[('standardscaler', StandardScaler()),\n",
" ('svc', SVC(gamma='auto'))])"
]
},
{
Expand All @@ -72,9 +93,33 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 3,
"metadata": {},
"outputs": [],
"outputs": [
{
"ename": "AttributeError",
"evalue": "'StandardScaler' object has no attribute 'predict_proba'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-3-40dff52d3498>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0mZ\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mclf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecision_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc_\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mxx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 24\u001b[0;31m \u001b[0mZ\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mclf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict_proba\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc_\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mxx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0myy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mravel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;31m# Put the result into a color plot\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAttributeError\u001b[0m: 'StandardScaler' object has no attribute 'predict_proba'"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from matplotlib.colors import ListedColormap\n",
"\n",
Expand All @@ -86,7 +131,8 @@
"xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
" np.arange(y_min, y_max, h))\n",
"cm = plt.cm.RdBu\n",
"cm_bright = ListedColormap(['#FF0000', '#0000FF'])\nnames = ['gamma = 0.001', 'gamma = 1', 'gamma = 20']\n",
"cm_bright = ListedColormap(['#FF0000', '#0000FF'])\n",
"names = ['gamma = 0.001', 'gamma = 1', 'gamma = 20']\n",
"\n",
"# iterate over classifiers\n",
"for name, clf in zip(names, classifiers):\n",
Expand Down Expand Up @@ -146,11 +192,27 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"0.5125"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Your code here"
"# Your code here\n",
"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.8,random_state=8)\n",
"from sklearn import svm\n",
"clf = svm.SVC(kernel='linear')\n",
"clf.fit(X_train, y_train).score(X_test, y_test)"
]
},
{
Expand All @@ -162,11 +224,50 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 7,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(steps=[('standardscaler', StandardScaler()), ('svc', SVC(gamma=20))])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Your code here"
"# Your code here\n",
"classifiers20 = make_pipeline(StandardScaler(), SVC(gamma=20))\n",
"classifiers20.fit(X, y)\n",
"Pipeline(steps=[('standardscaler', StandardScaler()),\n",
" ('svc', SVC(gamma=20))])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5125"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"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.8,random_state=8)\n",
"from sklearn import svm\n",
"clf20 = svm.SVC(kernel='linear')\n",
"clf20.fit(X_train, y_train).score(X_test, y_test)"
]
},
{
Expand All @@ -178,11 +279,49 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 10,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/plain": [
"Pipeline(steps=[('standardscaler', StandardScaler()), ('svc', SVC(gamma=1000))])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Your code here\n",
"classifiers1000 = make_pipeline(StandardScaler(), SVC(gamma=1000))\n",
"classifiers1000.fit(X, y)\n",
"Pipeline(steps=[('standardscaler', StandardScaler()),\n",
" ('svc', SVC(gamma=1000))])"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5125"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Your code here"
"X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.8,random_state=8)\n",
"from sklearn import svm\n",
"clf1000= svm.SVC(kernel='linear')\n",
"clf1000.fit(X_train, y_train).score(X_test, y_test)"
]
},
{
Expand Down Expand Up @@ -218,7 +357,20 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.2"
"version": "3.7.6"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
Expand Down