Skip to content

Instantly share code, notes, and snippets.

@zettamax
Last active January 31, 2016 20:16
Show Gist options
  • Save zettamax/dc6e70a5eeeb5af52855 to your computer and use it in GitHub Desktop.
Save zettamax/dc6e70a5eeeb5af52855 to your computer and use it in GitHub Desktop.
iPython Notebook file
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.cross_validation import KFold\n",
"from sklearn.cross_validation import cross_val_score\n",
"from sklearn.preprocessing import scale\n",
"import pprint as pp\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data', header=None)\n",
"\n",
"length = len(df)\n",
"classes = df.loc[:, 0].values\n",
"attrs = df.loc[:, 1:].values"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"kfold = KFold(length, n_folds=5, shuffle=True, random_state=42)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0.7304761904761905, 1)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10b6bb950>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"scores = []\n",
"scores_idx = []\n",
"\n",
"for k in range(1, 51):\n",
" neigh = KNeighborsClassifier(n_neighbors=k)\n",
" score = cross_val_score(neigh, attrs, y=classes, scoring='accuracy', cv=kfold)\n",
" scores.append(score.mean())\n",
" scores_idx.append(k)\n",
"\n",
"max_score = np.array(scores).max()\n",
"max_score_idx = np.array(scores).argmax()\n",
"plt.plot(scores_idx, scores)\n",
"max_score, scores_idx[max_score_idx]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(0.9776190476190475, 29)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10fb3e150>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"scaled_attrs = scale(attrs)\n",
"scores = []\n",
"scores_idx = []\n",
"\n",
"for k in range(1, 51):\n",
" neigh = KNeighborsClassifier(n_neighbors=k)\n",
" score = cross_val_score(neigh, scaled_attrs, y=classes, scoring='accuracy', cv=kfold)\n",
" scores.append(score.mean())\n",
" scores_idx.append(k)\n",
" \n",
"max_score = np.array(scores).max()\n",
"max_score_idx = np.array(scores).argmax()\n",
"opt_k = scores_idx[max_score_idx]\n",
"\n",
"plt.plot(scores_idx, scores)\n",
"max_score, opt_k"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment