{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Ejercicio k-Nearest Neighbor"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:07.018425Z",
"start_time": "2018-07-08T21:06:05.294010Z"
}
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.colors import ListedColormap\n",
"import matplotlib.patches as mpatches\n",
"import seaborn as sb\n",
"\n",
"%matplotlib inline\n",
"plt.rcParams['figure.figsize'] = (16, 9)\n",
"plt.style.use('ggplot')\n",
"\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.metrics import classification_report\n",
"from sklearn.metrics import confusion_matrix"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Leemos nuestro archivo de entrada"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:07.085378Z",
"start_time": "2018-07-08T21:06:07.021056Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" Review Title \n",
" Review Text \n",
" wordcount \n",
" titleSentiment \n",
" textSentiment \n",
" Star Rating \n",
" sentimentValue \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Sin conexión \n",
" Hola desde hace algo más de un mes me pone sin... \n",
" 23 \n",
" negative \n",
" negative \n",
" 1 \n",
" -0.486389 \n",
" \n",
" \n",
" 1 \n",
" faltan cosas \n",
" Han mejorado la apariencia pero no \n",
" 20 \n",
" negative \n",
" negative \n",
" 1 \n",
" -0.586187 \n",
" \n",
" \n",
" 2 \n",
" Es muy buena lo recomiendo \n",
" Andres e puto amoooo \n",
" 4 \n",
" NaN \n",
" negative \n",
" 1 \n",
" -0.602240 \n",
" \n",
" \n",
" 3 \n",
" Version antigua \n",
" Me gustana mas la version anterior esta es mas... \n",
" 17 \n",
" NaN \n",
" negative \n",
" 1 \n",
" -0.616271 \n",
" \n",
" \n",
" 4 \n",
" Esta bien \n",
" Sin ser la biblia.... Esta bien \n",
" 6 \n",
" negative \n",
" negative \n",
" 1 \n",
" -0.651784 \n",
" \n",
" \n",
" 5 \n",
" Buena \n",
" Nada del otro mundo pero han mejorado mucho \n",
" 8 \n",
" positive \n",
" negative \n",
" 1 \n",
" -0.720443 \n",
" \n",
" \n",
" 6 \n",
" De gran ayuda \n",
" Lo malo q necesita de …,pero la app es muy buena \n",
" 23 \n",
" positive \n",
" negative \n",
" 1 \n",
" -0.726825 \n",
" \n",
" \n",
" 7 \n",
" Muy buena \n",
" Estaba más acostumbrado al otro diseño, pero e... \n",
" 16 \n",
" positive \n",
" negative \n",
" 1 \n",
" -0.736769 \n",
" \n",
" \n",
" 8 \n",
" Ta to guapa. \n",
" Va de escándalo \n",
" 21 \n",
" positive \n",
" negative \n",
" 1 \n",
" -0.765284 \n",
" \n",
" \n",
" 9 \n",
" Se han corregido \n",
" Han corregido muchos fallos pero el diseño es ... \n",
" 13 \n",
" negative \n",
" negative \n",
" 1 \n",
" -0.797961 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Review Title \\\n",
"0 Sin conexión \n",
"1 faltan cosas \n",
"2 Es muy buena lo recomiendo \n",
"3 Version antigua \n",
"4 Esta bien \n",
"5 Buena \n",
"6 De gran ayuda \n",
"7 Muy buena \n",
"8 Ta to guapa. \n",
"9 Se han corregido \n",
"\n",
" Review Text wordcount \\\n",
"0 Hola desde hace algo más de un mes me pone sin... 23 \n",
"1 Han mejorado la apariencia pero no 20 \n",
"2 Andres e puto amoooo 4 \n",
"3 Me gustana mas la version anterior esta es mas... 17 \n",
"4 Sin ser la biblia.... Esta bien 6 \n",
"5 Nada del otro mundo pero han mejorado mucho 8 \n",
"6 Lo malo q necesita de …,pero la app es muy buena 23 \n",
"7 Estaba más acostumbrado al otro diseño, pero e... 16 \n",
"8 Va de escándalo 21 \n",
"9 Han corregido muchos fallos pero el diseño es ... 13 \n",
"\n",
" titleSentiment textSentiment Star Rating sentimentValue \n",
"0 negative negative 1 -0.486389 \n",
"1 negative negative 1 -0.586187 \n",
"2 NaN negative 1 -0.602240 \n",
"3 NaN negative 1 -0.616271 \n",
"4 negative negative 1 -0.651784 \n",
"5 positive negative 1 -0.720443 \n",
"6 positive negative 1 -0.726825 \n",
"7 positive negative 1 -0.736769 \n",
"8 positive negative 1 -0.765284 \n",
"9 negative negative 1 -0.797961 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataframe = pd.read_csv(r\"reviews_sentiment.csv\",sep=';')\n",
"dataframe.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:07.122278Z",
"start_time": "2018-07-08T21:06:07.088645Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" wordcount \n",
" Star Rating \n",
" sentimentValue \n",
" \n",
" \n",
" \n",
" \n",
" count \n",
" 257.000000 \n",
" 257.000000 \n",
" 257.000000 \n",
" \n",
" \n",
" mean \n",
" 11.501946 \n",
" 3.420233 \n",
" 0.383849 \n",
" \n",
" \n",
" std \n",
" 13.159812 \n",
" 1.409531 \n",
" 0.897987 \n",
" \n",
" \n",
" min \n",
" 1.000000 \n",
" 1.000000 \n",
" -2.276469 \n",
" \n",
" \n",
" 25% \n",
" 3.000000 \n",
" 3.000000 \n",
" -0.108144 \n",
" \n",
" \n",
" 50% \n",
" 7.000000 \n",
" 3.000000 \n",
" 0.264091 \n",
" \n",
" \n",
" 75% \n",
" 16.000000 \n",
" 5.000000 \n",
" 0.808384 \n",
" \n",
" \n",
" max \n",
" 103.000000 \n",
" 5.000000 \n",
" 3.264579 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" wordcount Star Rating sentimentValue\n",
"count 257.000000 257.000000 257.000000\n",
"mean 11.501946 3.420233 0.383849\n",
"std 13.159812 1.409531 0.897987\n",
"min 1.000000 1.000000 -2.276469\n",
"25% 3.000000 3.000000 -0.108144\n",
"50% 7.000000 3.000000 0.264091\n",
"75% 16.000000 5.000000 0.808384\n",
"max 103.000000 5.000000 3.264579"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataframe.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Rápidas visualizaciones"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:07.592242Z",
"start_time": "2018-07-08T21:06:07.127692Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dataframe.hist()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:07.603298Z",
"start_time": "2018-07-08T21:06:07.595168Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Star Rating\n",
"1 37\n",
"2 24\n",
"3 78\n",
"4 30\n",
"5 88\n",
"dtype: int64\n"
]
}
],
"source": [
"print(dataframe.groupby('Star Rating').size())"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:07.821277Z",
"start_time": "2018-07-08T21:06:07.606864Z"
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sb.factorplot('Star Rating',data=dataframe,kind=\"count\", aspect=3)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:08.264250Z",
"start_time": "2018-07-08T21:06:07.824002Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sb.factorplot('wordcount',data=dataframe,kind=\"count\", aspect=3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Preparamos el dataset"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:08.274906Z",
"start_time": "2018-07-08T21:06:08.267067Z"
}
},
"outputs": [],
"source": [
"X = dataframe[['wordcount','sentimentValue']].values\n",
"y = dataframe['Star Rating'].values\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)\n",
"scaler = MinMaxScaler()\n",
"X_train = scaler.fit_transform(X_train)\n",
"X_test = scaler.transform(X_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Creamos el Modelo"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:08.298007Z",
"start_time": "2018-07-08T21:06:08.281409Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy of K-NN classifier on training set: 0.90\n",
"Accuracy of K-NN classifier on test set: 0.86\n"
]
}
],
"source": [
"n_neighbors = 7\n",
"\n",
"knn = KNeighborsClassifier(n_neighbors)\n",
"knn.fit(X_train, y_train)\n",
"print('Accuracy of K-NN classifier on training set: {:.2f}'\n",
" .format(knn.score(X_train, y_train)))\n",
"print('Accuracy of K-NN classifier on test set: {:.2f}'\n",
" .format(knn.score(X_test, y_test)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Resultados obtenidos"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:08.318080Z",
"start_time": "2018-07-08T21:06:08.303739Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 9 0 1 0 0]\n",
" [ 0 1 0 0 0]\n",
" [ 0 1 17 0 1]\n",
" [ 0 0 2 8 0]\n",
" [ 0 0 4 0 21]]\n",
" precision recall f1-score support\n",
"\n",
" 1 1.00 0.90 0.95 10\n",
" 2 0.50 1.00 0.67 1\n",
" 3 0.71 0.89 0.79 19\n",
" 4 1.00 0.80 0.89 10\n",
" 5 0.95 0.84 0.89 25\n",
"\n",
"avg / total 0.89 0.86 0.87 65\n",
"\n"
]
}
],
"source": [
"pred = knn.predict(X_test)\n",
"print(confusion_matrix(y_test, pred))\n",
"print(classification_report(y_test, pred))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Gráfica de la Clasificación Obtenida"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:38.684163Z",
"start_time": "2018-07-08T21:06:08.324560Z"
},
"code_folding": []
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"h = .02 # step size in the mesh\n",
"\n",
"# Create color maps\n",
"cmap_light = ListedColormap(['#FFAAAA', '#ffcc99', '#ffffb3','#b3ffff','#c2f0c2'])\n",
"cmap_bold = ListedColormap(['#FF0000', '#ff9933','#FFFF00','#00ffff','#00FF00'])\n",
"\n",
"# we create an instance of Neighbours Classifier and fit the data.\n",
"clf = KNeighborsClassifier(n_neighbors, weights='distance')\n",
"clf.fit(X, y)\n",
"\n",
"# Plot the decision boundary. For that, we will assign a color to each\n",
"# point in the mesh [x_min, x_max]x[y_min, y_max].\n",
"x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
"y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
"xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
" np.arange(y_min, y_max, h))\n",
"Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n",
"\n",
"# Put the result into a color plot\n",
"Z = Z.reshape(xx.shape)\n",
"plt.figure()\n",
"plt.pcolormesh(xx, yy, Z, cmap=cmap_light)\n",
"\n",
"# Plot also the training points\n",
"plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold,\n",
" edgecolor='k', s=20)\n",
"plt.xlim(xx.min(), xx.max())\n",
"plt.ylim(yy.min(), yy.max())\n",
" \n",
"patch0 = mpatches.Patch(color='#FF0000', label='1')\n",
"patch1 = mpatches.Patch(color='#ff9933', label='2')\n",
"patch2 = mpatches.Patch(color='#FFFF00', label='3')\n",
"patch3 = mpatches.Patch(color='#00ffff', label='4')\n",
"patch4 = mpatches.Patch(color='#00FF00', label='5')\n",
"plt.legend(handles=[patch0, patch1, patch2, patch3,patch4])\n",
"\n",
" \n",
"plt.title(\"5-Class classification (k = %i, weights = '%s')\"\n",
" % (n_neighbors, 'distance'))\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cómo obtener el mejor valor de k"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:38.869436Z",
"start_time": "2018-07-08T21:06:38.687690Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"([,\n",
" ,\n",
" ,\n",
" ,\n",
" ],\n",
" )"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"k_range = range(1, 20)\n",
"scores = []\n",
"for k in k_range:\n",
" knn = KNeighborsClassifier(n_neighbors = k)\n",
" knn.fit(X_train, y_train)\n",
" scores.append(knn.score(X_test, y_test))\n",
"plt.figure()\n",
"plt.xlabel('k')\n",
"plt.ylabel('accuracy')\n",
"plt.scatter(k_range, scores)\n",
"plt.xticks([0,5,10,15,20])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Predicciones"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:38.890532Z",
"start_time": "2018-07-08T21:06:38.879285Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[5]\n"
]
}
],
"source": [
"print(clf.predict([[5, 1.0]]))\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"ExecuteTime": {
"end_time": "2018-07-08T21:06:38.903309Z",
"start_time": "2018-07-08T21:06:38.894227Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0.00381998 0.02520212 0.97097789 0. 0. ]]\n"
]
}
],
"source": [
"print(clf.predict_proba([[20, 0.0]]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Más sobre Machine Learning en mi blog: www.aprendemachinelearning.com"
]
}
],
"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
}