138 lines
17 KiB
Plaintext
138 lines
17 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\nAAAASUVORK5CYII=\n",
|
|
"text/plain": [
|
|
"<matplotlib.figure.Figure at 0x10ed08240>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"0.943743942225\n",
|
|
"---------K-Nearest Neighbors-------\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n",
|
|
" metric_params=None, n_jobs=1, n_neighbors=3, p=2,\n",
|
|
" weights='uniform')"
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"import mglearn\n",
|
|
"import numpy as np\n",
|
|
"from sklearn import linear_model\n",
|
|
"from sklearn.linear_model import LinearRegression\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from sklearn.preprocessing import PolynomialFeatures\n",
|
|
"from sklearn.pipeline import Pipeline\n",
|
|
"from sklearn.neighbors import KNeighborsClassifier\n",
|
|
"\n",
|
|
"# Generate sample data\n",
|
|
"X = np.sort(5*np.random.rand(40,1), axis=0)\n",
|
|
"y = X**3\n",
|
|
"y=y.ravel()\n",
|
|
"\n",
|
|
"# Add noise to targets\n",
|
|
"X[::4] +=(0.5 - np.random.rand(1))\n",
|
|
"y[::5] +=(0.5 - np.random.rand(8))\n",
|
|
"\n",
|
|
"a=np.array(X)\n",
|
|
"b=np.array(y)\n",
|
|
"\n",
|
|
"X_train=a[:19]\n",
|
|
"X_test=a[19:]\n",
|
|
"y_train=b[:19]\n",
|
|
"y_test=b[19:]\n",
|
|
"\n",
|
|
"model=Pipeline([('poly', PolynomialFeatures(degree=3)),('linear', LinearRegression(fit_intercept=False))])\n",
|
|
"model=model.fit(X_train, y_train)\n",
|
|
"pred=model.predict(X_test)\n",
|
|
"\n",
|
|
"\n",
|
|
"poly=PolynomialFeatures(degree=3)\n",
|
|
"poly.fit_transform(X_train, y_train)\n",
|
|
"plt.scatter(X_test, y_test)\n",
|
|
"plt.plot(X_test, pred, color='green')\n",
|
|
"plt.show()\n",
|
|
"\n",
|
|
"print (model.score(X_test,y_test))\n",
|
|
"\n",
|
|
"print (\"---------K-Nearest Neighbors-------\")\n",
|
|
"\"\"\"neighbors_settings=range(1,11)\n",
|
|
"for n_neighbors in neighbors_settings:\n",
|
|
" clf=KNeighborsClassifier(n_neighbors=n_neighbors)\n",
|
|
" clf.fit(X_train, y_train)\n",
|
|
" training_accuracy.append(clf.score(X_train, y_train))\n",
|
|
" test_accuracy.append(clf.score(X_test, y_test))\n",
|
|
"\n",
|
|
"\n",
|
|
"print (mglearn.plots.plot_knn_regression(n_neighbors=3))\"\"\"\n",
|
|
"\n",
|
|
"from sklearn.neighbors import KNeighborsRegressor\n",
|
|
"\n",
|
|
"X, y=mglearn.datasets.make_wave(n_samples=40)\n",
|
|
"reg = KNeighborsRegressor(n_neighbors=3)\n",
|
|
"reg.fit(X_train, y_train)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {
|
|
"collapsed": true
|
|
},
|
|
"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.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|