Skip to content

Commit

Permalink
Arreglo notebook de extras y NB
Browse files Browse the repository at this point in the history
  • Loading branch information
fjpacheco committed Jul 13, 2021
1 parent 76a1874 commit 828c089
Show file tree
Hide file tree
Showing 3 changed files with 2,238 additions and 2,227 deletions.
38 changes: 18 additions & 20 deletions parte_2/#3 - Naive Bayes.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -303,14 +303,14 @@
"output_type": "stream",
"text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
"[Parallel(n_jobs=-1)]: Done 17 tasks | elapsed: 2.2s\n",
"[Parallel(n_jobs=-1)]: Done 70 out of 70 | elapsed: 2.5s finished\n"
"[Parallel(n_jobs=-1)]: Done 17 tasks | elapsed: 2.8s\n",
"[Parallel(n_jobs=-1)]: Done 70 out of 70 | elapsed: 3.3s finished\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7f7b0c0956d0>,\n",
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7fff2ad352e0>,\n",
" estimator=GaussianNB(), n_jobs=-1,\n",
" param_grid={'var_smoothing': [1e-13, 1e-12, 1e-11, 1e-10, 1e-09,\n",
" 1e-08, 1e-07]},\n",
Expand Down Expand Up @@ -1115,14 +1115,14 @@
"output_type": "stream",
"text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
"[Parallel(n_jobs=-1)]: Done 17 tasks | elapsed: 1.1s\n",
"[Parallel(n_jobs=-1)]: Done 70 out of 70 | elapsed: 2.1s finished\n"
"[Parallel(n_jobs=-1)]: Done 17 tasks | elapsed: 1.0s\n",
"[Parallel(n_jobs=-1)]: Done 70 out of 70 | elapsed: 1.7s finished\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7f7ad8906e40>,\n",
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7ffef10f9270>,\n",
" estimator=MultinomialNB(), n_jobs=-1,\n",
" param_grid={'alpha': [0.0001, 0.001, 0.1, 0.3, 0.6, 0.9, 1]},\n",
" scoring='roc_auc', verbose=4)"
Expand Down Expand Up @@ -1432,15 +1432,15 @@
"output_type": "stream",
"text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
"[Parallel(n_jobs=-1)]: Done 28 tasks | elapsed: 0.7s\n",
"[Parallel(n_jobs=-1)]: Done 133 out of 140 | elapsed: 2.6s remaining: 0.1s\n",
"[Parallel(n_jobs=-1)]: Done 140 out of 140 | elapsed: 2.7s finished\n"
"[Parallel(n_jobs=-1)]: Done 28 tasks | elapsed: 0.5s\n",
"[Parallel(n_jobs=-1)]: Done 133 out of 140 | elapsed: 2.1s remaining: 0.1s\n",
"[Parallel(n_jobs=-1)]: Done 140 out of 140 | elapsed: 2.2s finished\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7f7ad8a16900>,\n",
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7ffef12047b0>,\n",
" estimator=CategoricalNB(), n_jobs=-1,\n",
" param_grid={'alpha': [0.0001, 0.001, 0.1, 0.3, 0.6, 0.9, 1]},\n",
" scoring='roc_auc', verbose=4)"
Expand Down Expand Up @@ -1652,14 +1652,14 @@
"output_type": "stream",
"text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
"[Parallel(n_jobs=-1)]: Done 26 tasks | elapsed: 0.7s\n",
"[Parallel(n_jobs=-1)]: Done 140 out of 140 | elapsed: 3.8s finished\n"
"[Parallel(n_jobs=-1)]: Done 26 tasks | elapsed: 0.6s\n",
"[Parallel(n_jobs=-1)]: Done 140 out of 140 | elapsed: 2.6s finished\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7f7ad7bf92e0>,\n",
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7ffef03e9120>,\n",
" estimator=CategoricalNB(), n_jobs=-1,\n",
" param_grid={'alpha': [0.0001, 0.001, 0.1, 0.3, 0.6, 0.9, 1]},\n",
" scoring='roc_auc', verbose=4)"
Expand Down Expand Up @@ -1888,8 +1888,8 @@
"output_type": "stream",
"text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
"[Parallel(n_jobs=-1)]: Done 28 tasks | elapsed: 0.4s\n",
"[Parallel(n_jobs=-1)]: Done 140 out of 140 | elapsed: 1.2s finished\n",
"[Parallel(n_jobs=-1)]: Done 28 tasks | elapsed: 0.3s\n",
"[Parallel(n_jobs=-1)]: Done 140 out of 140 | elapsed: 0.9s finished\n",
"/home/feduntu/.local/lib/python3.8/site-packages/sklearn/metrics/_classification.py:1221: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
" _warn_prf(average, modifier, msg_start, len(result))\n"
]
Expand Down Expand Up @@ -2007,14 +2007,14 @@
"output_type": "stream",
"text": [
"[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
"[Parallel(n_jobs=-1)]: Done 26 tasks | elapsed: 0.6s\n",
"[Parallel(n_jobs=-1)]: Done 28 tasks | elapsed: 0.3s\n",
"[Parallel(n_jobs=-1)]: Done 140 out of 140 | elapsed: 1.3s finished\n"
]
},
{
"data": {
"text/plain": [
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7f7ad7b7cc80>,\n",
"GridSearchCV(cv=<generator object _BaseKFold.split at 0x7ffef036c660>,\n",
" estimator=GaussianNB(), n_jobs=-1,\n",
" param_grid={'var_smoothing': [1e-13, 1e-12, 1e-11, 1e-10, 1e-09,\n",
" 1e-08, 1e-07]},\n",
Expand Down Expand Up @@ -2465,7 +2465,6 @@
],
"source": [
"X_holdout_numerico_d = obtener_features_discretas(X_holdout) \n",
"X_holdout_numerico_d = get_dataframe_scaled(X_holdout_numerico_d, PowerTransformer())\n",
"X_holdout_numerico_d_proba = clf_3.predict_proba(X_holdout_numerico_d)"
]
},
Expand Down Expand Up @@ -2493,8 +2492,7 @@
"X_holdout_generalizada = aplicar_preparacion_holdout(df_for_prediction, generalizada=True)\n",
"X_holdout_generalizada_c = conversion_numerica_generalizada(X_holdout_generalizada[['barrio','categoria_de_trabajo', 'educacion_alcanzada', 'estado_marital', 'genero', 'religion', 'rol_familiar_registrado', 'trabajo']])\n",
"\n",
"X_holdout_numerico_c = get_dataframe_scaled(X_holdout_generalizada_c, MinMaxScaler())\n",
"X_holdout_numerico_c_proba = clf_5.predict_proba(X_holdout_numerico_c)"
"X_holdout_numerico_c_proba = clf_5.predict_proba(X_holdout_generalizada_c)"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"X_df_numerico_polyYa hemos realizado un análisis exploratorio durante la primera parte del trabajo práctico. En este notebook se volverá a retomar dicho análisis para lograr conseguir un *preprocesamiento* de datos con mayor calidad de tal forma que nuestros modelos de aprendizaje automático que aplicaremos, puedan aprender mejor sobre el conjunto de datos a presentarles. Ademas no queremos que nos devuelvan basura. Tal como dice el refrán:\n",
"Ya hemos realizado un análisis exploratorio durante la primera parte del trabajo práctico. En este notebook se volverá a retomar dicho análisis para lograr conseguir un *preprocesamiento* de datos con mayor calidad de tal forma que nuestros modelos de aprendizaje automático que aplicaremos, puedan aprender mejor sobre el conjunto de datos a presentarles. Ademas no queremos que nos devuelvan basura. Tal como dice el refrán:\n",
"\n",
"\"**Garbage in... garbage out**\"\n",
"\n",
Expand Down Expand Up @@ -78,7 +78,7 @@
" selector = VarianceThreshold(threshold=threshold)\n",
" vt = selector.fit(_df)\n",
" _df = _df.loc[:, vt.get_support()]\n",
" return _df\n"
" return _df"
]
},
{
Expand Down Expand Up @@ -775,11 +775,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Definamos la siguiente función que reduzca la dimensionalidad. Utilzaremos TruncatedSVD para reducir lo mismo el cual realiza una reducción via la descomposición de valores singulares.\n",
"\n",
"**Chamuyar más sobre TruncatedSVD**\n",
"\n",
"Pero antes de reducir la dimensionalidad, apliquemos diferentes escalado de los datos para saber cual reducción nos mantiene un mayor porcentaje de varianza."
"Definamos la siguiente función que reduzca la dimensionalidad. Utilzaremos TruncatedSVD para reducir lo mismo el cual realiza una reducción via la descomposición de valores singulares. Pero antes de reducir la dimensionalidad, apliquemos diferentes escalado de los datos para saber cual reducción nos mantiene un mayor porcentaje de varianza."
]
},
{
Expand Down Expand Up @@ -876,18 +872,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Aquella transformación con la que logramos mantener un 95% de varianza es la MinMaxScaler() con un numero de componentes menor, de 23. \n",
"\n",
"**(DUDANDO)** Tiene sentido que con al Normalizer() hayamos obtenido solamente 2 componentes pues estan todos los valores normalizado. Si se piensa en un grafico 2D es como si se proyectase ese circulo unitario (formado gracias a una Normalización) sobre los ejes en 2 dimensiones, es decir, sobre 2 componentes principales de los ejes.\n"
"Aquella transformación con la que logramos mantener un 95% de varianza es la MinMaxScaler() con un numero de componentes menor, de 23."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nos quedaremos entonces con el escalado de los datos de *MinMaxScaler()* aplicando TruncatedSVD con 23 compoenntes a reducir. \n",
"Nos quedaremos entonces con el escalado de los datos de *MinMaxScaler()* aplicando TruncatedSVD con 23 componentes a reducir. \n",
"\n",
"Definimos dicha función que dejaremos lista en el *preprocessing.py*"
"Definimos dicha función que dejaremos lista en el *preprocessing.py* el cual le pasamos la varianza explicada que el consumidor desee:"
]
},
{
Expand Down Expand Up @@ -980,7 +974,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Puede tardar un poco por tratarse de muchos datos."
"Veamos que nos da t-SNE para querer visualzar en 2D como quedaron estos datos, lo haremos con una perplexity de 35."
]
},
{
Expand All @@ -993,8 +987,8 @@
"output_type": "stream",
"text": [
"[t-SNE] Computing 106 nearest neighbors...\n",
"[t-SNE] Indexed 32561 samples in 0.121s...\n",
"[t-SNE] Computed neighbors for 32561 samples in 14.522s...\n",
"[t-SNE] Indexed 32561 samples in 0.168s...\n",
"[t-SNE] Computed neighbors for 32561 samples in 13.802s...\n",
"[t-SNE] Computed conditional probabilities for sample 1000 / 32561\n",
"[t-SNE] Computed conditional probabilities for sample 2000 / 32561\n",
"[t-SNE] Computed conditional probabilities for sample 3000 / 32561\n",
Expand Down Expand Up @@ -1079,14 +1073,21 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Busquemos expandir y reducir [RECORDAR CREAR LA FUNCION Y USARLA EN SVM O ACLARAR AL RESPECTO!!!!]"
"En este caso t-SNE no nos dio tan feo, se ve una separación de los altos y bajos valores. Hay algunos puntos juntos de altos y bajos pero se nota igualmente una separación razonable."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Busquemos expandir y reducir"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Expandamos:"
"Veamos que pasa con t-SNE al expandir las features y luego aplicar una reducción. Apliquemos la función de expansión polinomial con grado 2 e intercation_only = False."
]
},
{
Expand Down Expand Up @@ -1115,7 +1116,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Luego pasamos a reducir:"
"Luego pasamos a reducir manteniendo un 95% de varianza:"
]
},
{
Expand All @@ -1136,6 +1137,13 @@
"X_poly_red = reduccion_numerica(X_poly, 0.95)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Apliquemos ahora de nuevo t-SNE, otra vez para visualizar 2 componentes:"
]
},
{
"cell_type": "code",
"execution_count": 19,
Expand All @@ -1146,8 +1154,8 @@
"output_type": "stream",
"text": [
"[t-SNE] Computing 106 nearest neighbors...\n",
"[t-SNE] Indexed 32561 samples in 0.106s...\n",
"[t-SNE] Computed neighbors for 32561 samples in 21.768s...\n",
"[t-SNE] Indexed 32561 samples in 0.163s...\n",
"[t-SNE] Computed neighbors for 32561 samples in 18.426s...\n",
"[t-SNE] Computed conditional probabilities for sample 1000 / 32561\n",
"[t-SNE] Computed conditional probabilities for sample 2000 / 32561\n",
"[t-SNE] Computed conditional probabilities for sample 3000 / 32561\n",
Expand Down Expand Up @@ -1188,8 +1196,6 @@
}
],
"source": [
"from sklearn.manifold import TSNE\n",
"\n",
"tsne = TSNE(n_components=2, init='pca', random_state=1001, perplexity=35, method='barnes_hut', n_iter=1000, verbose=1)\n",
"X_tsne = tsne.fit_transform(X_poly_red) "
]
Expand Down Expand Up @@ -1227,6 +1233,13 @@
"plt.savefig('t-SNE-poly-red', dpi=150)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Tampoco nos dió tan mal, se observa de nuevo esa speparacion de los altos y bajos en tales sectores del scatter plot."
]
}
],
"metadata": {
Expand All @@ -1248,7 +1261,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
"version": "3.8.5"
}
},
"nbformat": 4,
Expand Down
Loading

0 comments on commit 828c089

Please sign in to comment.