{"id":334,"date":"2018-09-07T21:28:31","date_gmt":"2018-09-08T03:28:31","guid":{"rendered":"https:\/\/jacobsoft.com.mx\/?p=334"},"modified":"2021-08-22T21:36:14","modified_gmt":"2021-08-23T03:36:14","slug":"pre-procesamiento-de-datos-con-python","status":"publish","type":"post","link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/pre-procesamiento-de-datos-con-python\/","title":{"rendered":"Pre-procesamiento de datos con Python"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Pre-procesamiento de datos<\/h1>\n\n\n\n<p>Hoy en d\u00eda disponemos de una gran cantidad de datos generados por diferentes fuentes y se vuelve cada vez m\u00e1s necesario poder analizarlos ordenadamente para extraer de forma automatizada toda la <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000384&amp;type=3&amp;subid=0\" target=\"_blank\" rel=\"noopener noreferrer\">inteligencia<\/a> <\/strong>contenida en ellos.<\/p>\n\n\n\n<p>Las t\u00e9cnicas especializadas enfocadas al <strong>an\u00e1lisis de datos<\/strong>, constituyen tanto m\u00e9todos estad\u00edsticos como m\u00e9todos de inteligencia artificial y <a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.373&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\"><strong>machine learning<\/strong><\/a>, entre otros.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-2380084220870127\"\n     crossorigin=\"anonymous\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2380084220870127\"\n     data-ad-slot=\"2437322509\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Ve este art\u00edculo en video<\/p><\/blockquote><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Pre-procesamiento de datos con python\" width=\"780\" height=\"439\" src=\"https:\/\/www.youtube.com\/embed\/RHMHKA0pf9U?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<div style=\"height:27px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>En este sentido, la <strong>miner\u00eda de datos<\/strong> en s\u00ed, es un conjunto de t\u00e9cnicas encaminadas al descubrimiento de la informaci\u00f3n contenida en grandes conjuntos de datos.<\/p>\n\n\n\n<p>La palabra <strong>descubrimiento<\/strong> esta relacionada con el hecho de que mucha de la informaci\u00f3n valiosa es desconocida con anterioridad, se trata de analizar <strong>comportamientos<\/strong>, <strong>patrones<\/strong>, <strong>tendencias<\/strong>, <strong>asociaciones<\/strong> y otras caracter\u00edsticas del conocimiento inmerso en los datos.<\/p>\n\n\n\n<p>El proceso de an\u00e1lisis de datos o data science consta de varias fases:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/fases-de-analisis.png\"><img loading=\"lazy\" decoding=\"async\" width=\"932\" height=\"540\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/fases-de-analisis.png\" alt=\"\" class=\"wp-image-338\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/fases-de-analisis.png 932w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/fases-de-analisis-300x174.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/fases-de-analisis-768x445.png 768w\" sizes=\"auto, (max-width: 932px) 100vw, 932px\" \/><\/a><\/figure>\n\n\n\n<p>El pre-procesamiento es una estandarizaci\u00f3n de los datos previo al <a rel=\"noreferrer noopener\" aria-label=\"El pre-procesamiento es una estandarizaci\u00f3n de los datos previo al modelo de an\u00e1lisis y \u00e9ste consta a su vez de varias fases como se observa en la figura anterior. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\"><strong>modelo de an\u00e1lisis<\/strong><\/a> y \u00e9ste consta a su vez de varias fases como se observa en la figura anterior.<\/p>\n\n\n\n<p>Las fases de Selecci\u00f3n, Exploraci\u00f3n, Limpieza y Transformaci\u00f3n conforman el <strong>pre-procesamiento<\/strong> de los datos necesario en muchas ocasiones, antes de aplicar alg\u00fan modelo de an\u00e1lisis de datos, ya sea predictivo o descriptivo.<\/p>\n\n\n\n<p><strong>Muestreo y Selecci\u00f3n<\/strong><\/p>\n\n\n\n<p>En la fase de selecci\u00f3n se identifican y seleccionan las variables relevantes en los datos, la variables que nos van a aportar la informaci\u00f3n para el tema en el que estamos trabajando, as\u00ed como las fuentes que pueden ser \u00fatiles. Una vez seleccionadas las variables se aplican t\u00e9cnicas de muestreo adecuadas con el fin de obtener una muestra de los <a rel=\"noreferrer noopener\" aria-label=\"En la fase de selecci\u00f3n se identifican y seleccionan las variables relevantes en los datos, la variables que nos van a aportar la informaci\u00f3n para el tema en el que estamos trabajando, as\u00ed como las fuentes que pueden ser \u00fatiles. Una vez seleccionadas las variables se aplican t\u00e9cnicas de muestreo adecuadas con el fin de obtener una muestra de los datos que sea lo suficientemente representativa de la poblaci\u00f3n. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000671&amp;type=3&amp;subid=0\" target=\"_blank\"><strong>datos <\/strong><\/a>que sea lo suficientemente representativa de la poblaci\u00f3n.<\/p>\n\n\n\n<p>La muestra permite inferir las propiedades o caracter\u00edsticas de toda la poblaci\u00f3n con un <strong>error<\/strong> medible y acotable.<\/p>\n\n\n\n<p>A partir de la muestra se estiman las caracter\u00edsticas poblacionales (media, total, proporci\u00f3n, etc.) con un error cuantificable y controlable.<\/p>\n\n\n\n<p>Los errores se cuantifican mediante la varianza, la desviaci\u00f3n est\u00e1ndar o el c\u00e1lculo del error cuadr\u00e1tico medio para obtener la precisi\u00f3n de los errores.<\/p>\n\n\n\n<p>Es importante tomar en cuenta que para obtener el grado de representatividad de la muestra es necesario utilizar muestreo probabil\u00edstico.<\/p>\n\n\n\n<p><strong>Exploraci\u00f3n<\/strong><\/p>\n\n\n\n<p>Dado que los datos provienen de diferentes <a rel=\"noreferrer noopener\" aria-label=\"Dado que los datos provienen de diferentes fuentes, es necesaria su exploraci\u00f3n mediante t\u00e9cnicas de an\u00e1lisis exploratorio para identificar valores inusuales, valores extremos, valores desaparecidos, discontinuidades u otras peculiaridades de los mismos. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000671&amp;type=3&amp;subid=0\" target=\"_blank\"><strong>fuentes<\/strong><\/a>, es necesaria su exploraci\u00f3n mediante t\u00e9cnicas de <strong>an\u00e1lisis exploratorio<\/strong> para identificar valores inusuales, valores extremos, valores desaparecidos, discontinuidades u otras peculiaridades de los mismos.<\/p>\n\n\n\n<p>Con ello la fase de exploraci\u00f3n ayuda a determinar si son adecuadas las t\u00e9cnicas de <strong><a rel=\"noreferrer noopener\" aria-label=\"Con ello la fase de exploraci\u00f3n ayuda a determinar si son adecuadas las t\u00e9cnicas de an\u00e1lisis de datos que se tienen en consideraci\u00f3n. Por ello es necesario realizar un an\u00e1lisis precio de la informaci\u00f3n de que se dispone antes del uso de cualquier t\u00e9cnica. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000384&amp;type=3&amp;subid=0\" target=\"_blank\">an\u00e1lisis de datos<\/a><\/strong> que se tienen en consideraci\u00f3n. Por ello es necesario realizar un an\u00e1lisis previo de la informaci\u00f3n de que se dispone antes del uso de cualquier t\u00e9cnica.<\/p>\n\n\n\n<p>Hay que examinar las variables individuales y las relaciones entre ellas, as\u00ed como evaluar y solucionar problemas en el dise\u00f1o de la investigaci\u00f3n y la recolecci\u00f3n de datos.<\/p>\n\n\n\n<p>La exploraci\u00f3n puede indicar la necesidad de transformar los datos si la t\u00e9cnica necesita una distribuci\u00f3n normal o si se necesita utilizar pruebas no param\u00e9tricas.<\/p>\n\n\n\n<p>Para el an\u00e1lisis exploratorio se cuenta con t\u00e9cnicas formales y t\u00e9cnicas gr\u00e1ficas o visuales<\/p>\n\n\n\n<p><strong>Limpieza<\/strong><\/p>\n\n\n\n<p>Dado que en el conjunto de datos puede haber valores at\u00edpicos, valores faltantes y\/o valores erroneos, la limpieza de los mismo es importante para solventar alguno de estos inconvenientes. Esta fase es consecuencia del an\u00e1lisis exploratorio.<\/p>\n\n\n\n<p><strong>Transformaci\u00f3n<\/strong><\/p>\n\n\n\n<p>La transformaci\u00f3n de los datos es necesaria cuando entre las variables existen diferentes escalas o existen demasiadas o pocas variables, entonces se realiza una normalizaci\u00f3n o una estandarizaci\u00f3n de los datos mediante t\u00e9cnicas de reducci\u00f3n o aumento de la dimensi\u00f3n, as\u00ed como el escalamiento simple o multidimensional.<\/p>\n\n\n\n<p>Si en el an\u00e1lisis exploratorio se indica la necesidad de transformar algunas variables, se podr\u00e1n aplicar algunas de estas cuatro transformaciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Transformaciones l\u00f3gicas<\/li><li>Transformaciones lineales<\/li><li>Transformaciones algebraicas<\/li><li>Transformaciones no lineales<\/li><\/ul>\n\n\n\n<p>Estas fases mencionadas en los puntos anteriores, constituyen el proceso de pre-procesamiento de los datos y para aplicar estos conceptos, se presenta el siguiente ejemplo:<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-2380084220870127\"\n     crossorigin=\"anonymous\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2380084220870127\"\n     data-ad-slot=\"2437322509\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Ejemplo de Pre-procesamiento<\/strong><\/p>\n\n\n\n<p>Supongamos la siguiente <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000671&amp;type=3&amp;subid=0\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Supongamos la siguiente tabla de datos, que representa informaci\u00f3n de una tienda que relacion\u00f3 datos de clientes que compraron y clientes que no compraron: (opens in a new tab)\">tabla de datos<\/a><\/strong>, que representa informaci\u00f3n de una tienda que relacion\u00f3 datos de clientes que compraron y clientes que no compraron:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><b>No<\/b><\/td><td><b>Pa\u00eds<\/b><\/td><td><b>Edad<\/b><\/td><td><b>Salario<\/b><\/td><td><b>Compra<\/b><\/td><\/tr><tr><td>1<\/td><td>Francia<\/td><td>44<\/td><td>72000<\/td><td>No<\/td><\/tr><tr><td>2<\/td><td>Espa\u00f1a<\/td><td>27<\/td><td>48000<\/td><td>Si<\/td><\/tr><tr><td>3<\/td><td>Alemania<\/td><td>30<\/td><td>54000<\/td><td>No<\/td><\/tr><tr><td>4<\/td><td>Espa\u00f1a<\/td><td>38<\/td><td>61000<\/td><td>No<\/td><\/tr><tr><td>5<\/td><td>Alemania<\/td><td>40<\/td><td>&nbsp;<\/td><td>Si<\/td><\/tr><tr><td>6<\/td><td>Francia<\/td><td>35<\/td><td>58000<\/td><td>Si<\/td><\/tr><tr><td>7<\/td><td>Espa\u00f1a<\/td><td>&nbsp;<\/td><td>52000<\/td><td>No<\/td><\/tr><tr><td>8<\/td><td>Francia<\/td><td>48<\/td><td>79000<\/td><td>Si<\/td><\/tr><tr><td>9<\/td><td>Alemania<\/td><td>50<\/td><td>83000<\/td><td>No<\/td><\/tr><tr><td>10<\/td><td>Francia<\/td><td>37<\/td><td>67000<\/td><td>Si<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Como podemos observar, existen registros con datos faltantes. El cliente del registro o rengl\u00f3n 5 no tiene salario y el cliente del rengl\u00f3n 7 no tiene edad.<\/p>\n\n\n\n<p>Cuando se tienen datos faltantes, hay varias estrategias que se pueden seguir, sobre todo si se ha comprobado la aleatoriedad de dichos datos ausentes. Una estrategia es usar el m\u00e9todo de <strong>aproximaci\u00f3n de casos completos<\/strong> que consiste en incluir en el an\u00e1lisis s\u00f3lo los casos con datos completos, \u00fanicamente filas cuyos valores para todas las variables son v\u00e1lidos.<\/p>\n\n\n\n<p>En este caso tenemos que validar si la muestra se ve afectada o no al eliminar los casos incompletos.<\/p>\n\n\n\n<p>La alternativa a los m\u00e9todos de eliminaci\u00f3n de datos es la <strong>imputaci\u00f3n de la informaci\u00f3n faltante<\/strong>, donde el objetivo es estimar los valores ausentes basados en valores v\u00e1lidos de otras variables o casos.<\/p>\n\n\n\n<p>Un m\u00e9todo para llevar a cabo la imputaci\u00f3n de la informaci\u00f3n faltante es el <strong>m\u00e9todo de sustituci\u00f3n de casos<\/strong>. Este consiste en sustituir los datos ausentes con datos de observaciones no muestrales, es decir, que no pertenecen a la muestra.<\/p>\n\n\n\n<p>El <strong>m\u00e9todo de sustituci\u00f3n por la media o la mediana<\/strong>, sustituye los datos ausentes por el valor de la media o la mediana de todos los valores v\u00e1lidos de su variable correspondiente. Cuando existen valores extremos o at\u00edpicos, los datos ausentes se sustituyen por la mediana, en caso contrario se utiliza la media.<\/p>\n\n\n\n<p><strong>El m\u00e9todo de imputaci\u00f3n por interpolaci\u00f3n<\/strong> sustituye cada valor ausente por la media o la mediana de un cierto n\u00famero de datos u observaciones adyacentes a el, sobre todo cuando hay demasiada variabilidad en los datos. Si no existe dicha variabilidad, entonces se sustituyen por el valor resultante de realizar una interpolaci\u00f3n con los valores adyacentes.<\/p>\n\n\n\n<p>Adicionalmente, tambi\u00e9n existe el <strong>m\u00e9todo de sustituci\u00f3n por un valor constante<\/strong> y como su nombre lo indica, los datos ausentes se sustituyen por un valor constante, v\u00e1lido para la variable en cuesti\u00f3n, derivado de fuentes externas o de una investigaci\u00f3n previa.<\/p>\n\n\n\n<p>Por \u00faltimo, podemos utilizar tambi\u00e9n el <strong>m\u00e9todo de imputaci\u00f3n por regresi\u00f3n<\/strong> y \u00e9ste utiliza el m\u00e9todo de la regresi\u00f3n para calcular o estimar los valores ausentes basados en su relaci\u00f3n con otras variables del conjunto de datos.<\/p>\n\n\n\n<p>En nuestro ejemplo vamos a utilizar la media como valor para imputar los datos faltantes tanto de edad como de salario. En este sentido el promedio de valores de la edad es: 38.77 y para el salario, el valor promedio de los valores presentes en la muestra es: 63,777.77, por lo que la tabla ahora queda de la siguiente manera:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><b>No<\/b><\/td><td><b>Pa\u00eds<\/b><\/td><td><b>Edad<\/b><\/td><td><b>Salario<\/b><\/td><td><b>Compra<\/b><\/td><\/tr><tr><td>1<\/td><td>Francia<\/td><td>44<\/td><td>72000<\/td><td>No<\/td><\/tr><tr><td>2<\/td><td>Espa\u00f1a<\/td><td>27<\/td><td>48000<\/td><td>Si<\/td><\/tr><tr><td>3<\/td><td>Alemania<\/td><td>30<\/td><td>54000<\/td><td>No<\/td><\/tr><tr><td>4<\/td><td>Espa\u00f1a<\/td><td>38<\/td><td>61000<\/td><td>No<\/td><\/tr><tr><td>5<\/td><td>Alemania<\/td><td>40<\/td><td><strong>63777.77<\/strong><\/td><td>Si<\/td><\/tr><tr><td>6<\/td><td>Francia<\/td><td>35<\/td><td>58000<\/td><td>Si<\/td><\/tr><tr><td>7<\/td><td>Espa\u00f1a<\/td><td><strong>38.77<\/strong><\/td><td>52000<\/td><td>No<\/td><\/tr><tr><td>8<\/td><td>Francia<\/td><td>48<\/td><td>79000<\/td><td>Si<\/td><\/tr><tr><td>9<\/td><td>Alemania<\/td><td>50<\/td><td>83000<\/td><td>No<\/td><\/tr><tr><td>10<\/td><td>Francia<\/td><td>37<\/td><td>67000<\/td><td>Si<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Ya tenemos la muestra completa y ahora continuamos con las <strong>variables categ\u00f3ricas<\/strong> (Pa\u00eds y Compra).<\/p>\n\n\n\n<p>Para la variable Compra, que tiene valores categ\u00f3ricos Si o No, podemos codificarla como 1 y 0 representando 1 para el valor Si y 0 para el valor No. Para el caso de la variable Pa\u00eds, el caso es un poco distinto dado que si codificamos como 0, 1 y 2, el pa\u00eds con el valor 2 tendr\u00eda m\u00e1s peso que el pa\u00eds con el valor 0 por lo que la estrategia para este tipo de variables es diferente.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-2380084220870127\"\n     crossorigin=\"anonymous\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2380084220870127\"\n     data-ad-slot=\"2437322509\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dentro de las transformaciones l\u00f3gicas, las variables de intervalo se pueden convertir en ordinales como las variables Talla o en nominales como Color, y crear variables ficticias o dummy.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><b>Pa\u00eds<\/b><\/td><td>&nbsp;<\/td><td><b>Francia<\/b><\/td><td><b>Espa\u00f1a<\/b><\/td><td><b>Alemania<\/b><\/td><\/tr><tr><td>Francia<\/td><td>&nbsp;<\/td><td>1<\/td><td>0<\/td><td>0<\/td><\/tr><tr><td>Espa\u00f1a<\/td><td>&nbsp;<\/td><td>0<\/td><td>1<\/td><td>0<\/td><\/tr><tr><td>Alemania<\/td><td>&nbsp;<\/td><td>0<\/td><td>0<\/td><td>1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>La variable Pa\u00eds la cambiamos por tres variables (Dummy) que son los valores de la variable Pa\u00eds. En lugar de utilizar la variable Pa\u00eds, utilizamos ahora las 3 variables nuevas y la tabla quedar\u00eda de la siguiente forma:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><b>No<\/b><\/td><td><b>Francia<\/b><\/td><td><b>Espa\u00f1a<\/b><\/td><td><b>Alemania<\/b><\/td><td><b>Edad<\/b><\/td><td><b>Salario<\/b><\/td><td><b>Compra<\/b><\/td><\/tr><tr><td>1<\/td><td>1<\/td><td>0<\/td><td>0<\/td><td>44<\/td><td>72000<\/td><td>0<\/td><\/tr><tr><td>2<\/td><td>0<\/td><td>1<\/td><td>0<\/td><td>27<\/td><td>48000<\/td><td>1<\/td><\/tr><tr><td>3<\/td><td>0<\/td><td>0<\/td><td>1<\/td><td>30<\/td><td>54000<\/td><td>0<\/td><\/tr><tr><td>4<\/td><td>0<\/td><td>1<\/td><td>0<\/td><td>38<\/td><td>61000<\/td><td>0<\/td><\/tr><tr><td>5<\/td><td>0<\/td><td>0<\/td><td>1<\/td><td>40<\/td><td>63777.77<\/td><td>1<\/td><\/tr><tr><td>6<\/td><td>1<\/td><td>0<\/td><td>0<\/td><td>35<\/td><td>58000<\/td><td>1<\/td><\/tr><tr><td>7<\/td><td>0<\/td><td>1<\/td><td>0<\/td><td>38.77<\/td><td>52000<\/td><td>0<\/td><\/tr><tr><td>8<\/td><td>1<\/td><td>0<\/td><td>0<\/td><td>48<\/td><td>79000<\/td><td>1<\/td><\/tr><tr><td>9<\/td><td>0<\/td><td>0<\/td><td>1<\/td><td>50<\/td><td>83000<\/td><td>0<\/td><\/tr><tr><td>10<\/td><td>1<\/td><td>0<\/td><td>0<\/td><td>37<\/td><td>67000<\/td><td>1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Dado que los datos de edad y salario mantienen una escala diferente y en las ecuaciones de la regresi\u00f3n o de alg\u00fan otro m\u00e9todo de clasificaci\u00f3n y\/o predicci\u00f3n, dada la distancia euclidiana entre dos puntos, el valor del salario podr\u00eda hacer que la edad deje de ser representativa o importante para el an\u00e1lisis, lo mas conveniente es hacer una transformaci\u00f3n de escalas, ya sea una estandarizaci\u00f3n o una normalizaci\u00f3n de los datos.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Normalizacion.png\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"157\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Normalizacion.png\" alt=\"\" class=\"wp-image-350\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Normalizacion.png 630w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Normalizacion-300x75.png 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/figure>\n\n\n\n<p>Para este ejemplo usaremos la normalizaci\u00f3n para ajustar las escalas de todas las variables que est\u00e1 dado por el valor actual de la muestra menos el valor m\u00ednimo de todo el conjunto de datos de esa variable entre la diferencia del valor m\u00e1ximo y el valor m\u00ednimo.<\/p>\n\n\n\n<p>Una vez aplicada la normalizaci\u00f3n, la tabla resultante es la siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><b>Francia<\/b><\/td><td><b>Alemania<\/b><\/td><td><b>Espa\u00f1a<\/b><\/td><td><b>Age<\/b><\/td><td><b>Salary<\/b><\/td><td><b>Purchased<\/b><\/td><\/tr><tr><td>1<\/td><td>0<\/td><td>0<\/td><td>0.72003861<\/td><td>0.71101283<\/td><td>0<\/td><\/tr><tr><td>0<\/td><td>0<\/td><td>1<\/td><td>-1.62356783<\/td><td>-1.36437577<\/td><td>1<\/td><\/tr><tr><td>0<\/td><td>1<\/td><td>0<\/td><td>-1.20999022<\/td><td>-0.84552862<\/td><td>0<\/td><\/tr><tr><td>0<\/td><td>0<\/td><td>1<\/td><td>-0.1071166<\/td><td>-0.24020695<\/td><td>0<\/td><\/tr><tr><td>0<\/td><td>1<\/td><td>0<\/td><td>0.1686018<\/td><td>-6.0532E-07<\/td><td>1<\/td><\/tr><tr><td>1<\/td><td>0<\/td><td>0<\/td><td>-0.52069421<\/td><td>-0.49963052<\/td><td>1<\/td><\/tr><tr><td>0<\/td><td>0<\/td><td>1<\/td><td>-0.00096501<\/td><td>-1.01847767<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>0<\/td><td>0<\/td><td>1.27147542<\/td><td>1.3163345<\/td><td>1<\/td><\/tr><tr><td>0<\/td><td>1<\/td><td>0<\/td><td>1.54719383<\/td><td>1.6622326<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>0<\/td><td>0<\/td><td>-0.2449758<\/td><td>0.2786402<\/td><td>1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Cuando las variables categ\u00f3ricas generan muchas variables dummy podemos utilizar las t\u00e9cnicas de reducci\u00f3n de la dimensi\u00f3n para hace nuestro conjunto de datos m\u00e1s manejable.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-2380084220870127\"\n     crossorigin=\"anonymous\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2380084220870127\"\n     data-ad-slot=\"2437322509\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Pre-procesamiento con Python<\/strong><\/p>\n\n\n\n<p>Utilizando <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000502&amp;type=3&amp;subid=0\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Utilizando python para realizar el pre-procesamiento del ejemplo anterior se vuelve sencillo con las librer\u00edas de numpy y sklearn dado que el subpaquete preprocessing contiene las clases necesarias para realizar la imputaci\u00f3n de datos ausentes, la codificaci\u00f3n de las variables categ\u00f3ricas, la creaci\u00f3n de variables dummy y el ajuste de escalas. (opens in a new tab)\">python <\/a><\/strong>para realizar el pre-procesamiento del ejemplo anterior se vuelve sencillo con las librer\u00edas de numpy y sklearn dado que el subpaquete preprocessing contiene las clases necesarias para realizar la imputaci\u00f3n de datos ausentes, la codificaci\u00f3n de las variables categ\u00f3ricas, la creaci\u00f3n de variables dummy y el ajuste de escalas.<\/p>\n\n\n\n<p>El primer paso es importar las librer\u00edas que vamos a utilizar en procesamiento, posteriormente cargamos el conjunto de datos y lo almacenamos en la variable dataset, dividimos la matriz en x (variables independientes) y Y(variable dependiente)<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted brush: cpp; gutter: true; first-line: 1\"><span style=\"color: #0000ff;\"><span style=\"color: #339966;\">#Pre-procesamiento de datos<\/span>\nimport<\/span> numpy <span style=\"color: #0000ff;\">as<\/span> np\n<span style=\"color: #0000ff;\">import<\/span> matplotlib.pyplot <span style=\"color: #0000ff;\">as<\/span> plt\n<span style=\"color: #0000ff;\">import<\/span> pandas <span style=\"color: #0000ff;\">as<\/span> pd\n\n<span style=\"color: #339966;\">#Cargamos el conjunto de datos<\/span>\ndataset = pd.read_csv('<span style=\"color: #008000;\">Preproc_Datos_Compras.csv<\/span>')\n<\/pre>\n\n\n<\/div>\n\n\n\n<p>El dataset cargado queda de la siguiente manera y como podemos observar, los datos ausentes se muestran como nan (not a number):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/dataset-preproc.png\"><img loading=\"lazy\" decoding=\"async\" width=\"508\" height=\"329\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/dataset-preproc.png\" alt=\"\" class=\"wp-image-354\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/dataset-preproc.png 508w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/dataset-preproc-300x194.png 300w\" sizes=\"auto, (max-width: 508px) 100vw, 508px\" \/><\/a><\/figure>\n\n\n\n<p>Ahora dividimos las variables en dependientes e independientes<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted brush: cpp; gutter: true; first-line: 1\"><span style=\"color: #0000ff;\"><span style=\"color: #339966;\">#Pre-procesamiento de datos<\/span>\nimport<\/span> numpy <span style=\"color: #0000ff;\">as<\/span> np\n<span style=\"color: #0000ff;\">import<\/span> matplotlib.pyplot <span style=\"color: #0000ff;\">as<\/span> plt\n<span style=\"color: #0000ff;\">import<\/span> pandas <span style=\"color: #0000ff;\">as<\/span> pd\n\n<span style=\"color: #339966;\">#Cargamos el conjunto de datos<\/span>\ndataset = pd.read_csv('<span style=\"color: #008000;\">Preproc_Datos_Compras.csv<\/span>')\n\n<span style=\"color: #339966;\"># Separamos las variables dependientes e independientes<\/span>\nx = dataset.iloc[:, :<span style=\"color: #0000ff;\">-1<\/span>]\ny = dataset.iloc[:, <span style=\"color: #0000ff;\">3<\/span>]<\/pre>\n\n\n<\/div>\n\n\n\n<p>Al ejecutar este \u00faltimo fragmento de c\u00f3digo tenemos las variables x y y<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-x-y-y.png\"><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"425\" src=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-x-y-y.png\" alt=\"\" class=\"wp-image-355\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-x-y-y.png 875w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-x-y-y-300x146.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-x-y-y-768x373.png 768w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/a><\/figure>\n\n\n\n<p>Vemos que en la matriz x, los datos ausentes se muestran como nan (Not an Object). El siguiente paso ahora es la imputaci\u00f3n de los datos ausentes y para ello, podemos utilizar la clase Imputer del subpaquete preprocessing.<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted brush: cpp; gutter: true; first-line: 1\"><span style=\"color: #0000ff;\"><span style=\"color: #339966;\">#Pre-procesamiento de datos<\/span>\nimport<\/span> numpy <span style=\"color: #0000ff;\">as<\/span> np\n<span style=\"color: #0000ff;\">import<\/span> matplotlib.pyplot <span style=\"color: #0000ff;\">as<\/span> plt\n<span style=\"color: #0000ff;\">import<\/span> pandas <span style=\"color: #0000ff;\">as<\/span> pd\n\n<span style=\"color: #339966;\">#Cargamos el conjunto de datos<\/span>\ndataset = pd.read_csv('<span style=\"color: #008000;\">Preproc_Datos_Compras.csv<\/span>')\n\n<span style=\"color: #339966;\"># Separamos las variables dependientes e independientes<\/span>\nx = dataset.iloc[:, :<span style=\"color: #0000ff;\">-1<\/span>]\ny = dataset.iloc[:, <span style=\"color: #0000ff;\">3<\/span>]\n\n<span style=\"color: #339966;\">#Imputacion de datos faltantes<\/span>\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> Imputer\nimputer = Imputer(missing_values='<span style=\"color: #008000;\">NaN<\/span>', strategy='<span style=\"color: #008000;\">mean<\/span>', axis=<span style=\"color: #0000ff;\">0<\/span>)\nimputer = imputer.fit(x.values[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>])\nx.iloc[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>] = imputer.transform(x.values[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>])\n<\/pre>\n\n\n<\/div>\n\n\n\n<p>Una vez ejecutado el fragmento del c\u00f3digo de la clase Imputer, observamos que los datos faltantes se calcularon con la media, que es la estrategia que se le indic\u00f3 en los argumentos del constructor de la clase Imputer.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Datos-Imputados.png\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"419\" src=\"http:\/\/jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Datos-Imputados.png\" alt=\"\" class=\"wp-image-356\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Datos-Imputados.png 448w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Datos-Imputados-300x281.png 300w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>El valor promedio de la edad fu\u00e9 38.77778 y el valor promedio del salario fu\u00e9 63,777.77778. El siguiente paso es la codificaci\u00f3n de las variables categ\u00f3ricas. Primero lo haremos para Y, con los valores Si y No y posteriormente para X con los valores de los pa\u00edses.<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted brush: cpp; gutter: true; first-line: 1\"><span style=\"color: #0000ff;\"><span style=\"color: #339966;\">#Pre-procesamiento de datos<\/span>\nimport<\/span> numpy <span style=\"color: #0000ff;\">as<\/span> np\n<span style=\"color: #0000ff;\">import<\/span> matplotlib.pyplot <span style=\"color: #0000ff;\">as<\/span> plt\n<span style=\"color: #0000ff;\">import<\/span> pandas <span style=\"color: #0000ff;\">as<\/span> pd\n\n<span style=\"color: #339966;\">#Cargamos el conjunto de datos<\/span>\ndataset = pd.read_csv('<span style=\"color: #008000;\">Preproc_Datos_Compras.csv<\/span>')\n\n<span style=\"color: #339966;\"># Separamos las variables dependientes e independientes<\/span>\nx = dataset.iloc[:, :<span style=\"color: #0000ff;\">-1<\/span>]\ny = dataset.iloc[:, <span style=\"color: #0000ff;\">3<\/span>]\n\n<span style=\"color: #339966;\">#Imputacion de datos faltantes<\/span>\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> Imputer\nimputer = Imputer(missing_values='<span style=\"color: #008000;\">NaN<\/span>', strategy='<span style=\"color: #008000;\">mean<\/span>', axis=<span style=\"color: #0000ff;\">0<\/span>)\nimputer = imputer.fit(x.values[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>])\nx.iloc[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>] = imputer.transform(x.values[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>])\n\n<span style=\"color: #339966;\"># Codificacion de variables categoricas<\/span>\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> LabelEncoder\nlabel_encoder_y = LabelEncoder()\ny = label_encoder_y.fit_transform(y)\n\nlabel_encoder_x = LabelEncoder()\nx.iloc[:, <span style=\"color: #0000ff;\">0<\/span>] = label_encoder_x.fit_transform(x.values[:, <span style=\"color: #0000ff;\">0<\/span>])\n\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> OneHotEncoder\nonehotencoder = OneHotEncoder(categorical_features = [<span style=\"color: #0000ff;\">0<\/span>])\nx = onehotencoder.fit_transform(x).toarray()\n<\/pre>\n\n\n<\/div>\n\n\n\n<p>La clase LabelEncoder codifica los valores de Y en 0 para No y 1 para Si, para los pa\u00edses los codifica en 0 Francia, 1 Espa\u00f1a y 2 Alemanaia, posteriormente la clases OneHotEncoder realiza la transformaci\u00f3n de las variables dummy quedando de la siguiente manera:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-codificadas.png\"><img loading=\"lazy\" decoding=\"async\" width=\"997\" height=\"419\" src=\"http:\/\/jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-codificadas.png\" alt=\"\" class=\"wp-image-357\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-codificadas.png 997w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-codificadas-300x126.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/Variables-codificadas-768x323.png 768w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><\/a><\/figure>\n\n\n\n<p>Por \u00faltimo, s\u00f3lo hace falta la transformaci\u00f3n de escalas para las variables de Edad y Salario.<\/p>\n\n\n<div id=\"code\">\n\n\n\n<pre class=\"wp-block-preformatted brush: cpp; gutter: true; first-line: 1\"><span style=\"color: #0000ff;\"><span style=\"color: #339966;\">#Pre-procesamiento de datos<\/span>\nimport<\/span> numpy <span style=\"color: #0000ff;\">as<\/span> np\n<span style=\"color: #0000ff;\">import<\/span> matplotlib.pyplot <span style=\"color: #0000ff;\">as<\/span> plt\n<span style=\"color: #0000ff;\">import<\/span> pandas <span style=\"color: #0000ff;\">as<\/span> pd\n\n<span style=\"color: #339966;\">#Cargamos el conjunto de datos<\/span>\ndataset = pd.read_csv('<span style=\"color: #008000;\">Preproc_Datos_Compras.csv<\/span>')\n\n<span style=\"color: #339966;\"># Separamos las variables dependientes e independientes<\/span>\nx = dataset.iloc[:, :<span style=\"color: #0000ff;\">-1<\/span>]\ny = dataset.iloc[:, <span style=\"color: #0000ff;\">3<\/span>]\n\n<span style=\"color: #339966;\">#Imputacion de datos faltantes<\/span>\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> Imputer\nimputer = Imputer(missing_values='<span style=\"color: #008000;\">NaN<\/span>', strategy='<span style=\"color: #008000;\">mean<\/span>', axis=<span style=\"color: #0000ff;\">0<\/span>)\nimputer = imputer.fit(x.values[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>])\nx.iloc[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>] = imputer.transform(x.values[:, <span style=\"color: #0000ff;\">1<\/span>:<span style=\"color: #0000ff;\">3<\/span>])\n\n<span style=\"color: #339966;\"># Codificacion de variables categoricas<\/span>\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> LabelEncoder\nlabel_encoder_y = LabelEncoder()\ny = label_encoder_y.fit_transform(y)\n\nlabel_encoder_x = LabelEncoder()\nx.iloc[:, <span style=\"color: #0000ff;\">0<\/span>] = label_encoder_x.fit_transform(x.values[:, <span style=\"color: #0000ff;\">0<\/span>])\n\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> OneHotEncoder\nonehotencoder = OneHotEncoder(categorical_features = [<span style=\"color: #0000ff;\">0<\/span>])\nx = onehotencoder.fit_transform(x).toarray()\n\n# Transformaci\u00f3n de escalas\n<span style=\"color: #0000ff;\">from<\/span> sklearn.preprocessing <span style=\"color: #0000ff;\">import<\/span> StandardScaler\nsc_x = StandardScaler()\nsc_y = StandardScaler()\nx = sc_x.fit_transform(x)\ny = sc_y.fit_transform(y.reshape(-<span style=\"color: #0000ff;\">1<\/span>, <span style=\"color: #0000ff;\">1<\/span>))<\/pre>\n\n\n<\/div>\n\n\n\n<p>Aplicamos la transformaci\u00f3n de escalas tanto para las variables del conjunto X como para la variable dependiente Y y vemos que ahora el si es 1 y el no es -1 para estandarizar todos los valores de todas las variables.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/transformacion-de-escalas.png\"><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"412\" src=\"http:\/\/jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/transformacion-de-escalas.png\" alt=\"\" class=\"wp-image-358\" srcset=\"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/transformacion-de-escalas.png 996w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/transformacion-de-escalas-300x124.png 300w, https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/transformacion-de-escalas-768x318.png 768w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/a><\/figure>\n\n\n\n<p>Ahora, ya con los datos pre-procesados podemos aplicar alg\u00fan m\u00e9todo predictivo como la Regresi\u00f3n Log\u00edstica para predecir las compras de alg\u00fan cliente nuevo, es decir con sus datos en pa\u00eds, edad y salario, estimar si comprar\u00e1 o no.<\/p>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Ve este art\u00edculo en video<\/p><\/blockquote><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Pre-procesamiento de datos con python\" width=\"780\" height=\"439\" src=\"https:\/\/www.youtube.com\/embed\/RHMHKA0pf9U?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption>Preprocesamiento de datos con python<\/figcaption><\/figure>\n\n\n\n<p>En los siguientes art\u00edculos presentaremos m\u00e9todos de clasificaci\u00f3n y predicci\u00f3n.<\/p>\n\n\n\n<p>Si te interesa ahondar m\u00e1s sobre estos temas, tenemos el curso de <a href=\"https:\/\/www.jacobsoft.com.mx\/cursos\/#python_para_ciencia_de_datos\"><strong>Python para Ciencia de Datos<\/strong>, checa aqu\u00ed los detalles<\/a><\/p>\n\n\n\n<p>Otro curso muy interesante para iniciar con python lo puedes ver <a rel=\"noreferrer noopener\" aria-label=\"Otro curso muy interesante para iniciar con python lo puedes ver aqu\u00ed (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000502&amp;type=3&amp;subid=0\" target=\"_blank\"><strong>aqu\u00ed<\/strong><\/a><\/p>\n\n\n\n<p>Para los fundamentos de programaci\u00f3n, recomendamos el siguiente curso: <strong><a href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=347188.10000500&amp;type=3&amp;subid=0\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Para los fundamentos de programaci\u00f3n, recomendamos el siguiente curso: Introducci\u00f3n a la programaci\u00f3n (opens in a new tab)\">Introducci\u00f3n a la programaci\u00f3n<\/a><\/strong><\/p>\n\n\n\n<p>Por otro lado, para conocer los detalles para utilizar servicios en la nube con AWS, este curso sobre la <strong><a rel=\"noreferrer noopener\" aria-label=\"Por otro lado, para conocer los detalles para utilizar servicios en la nube con AWS, este curso sobre la certificaci\u00f3n de Asociado es bastante recomendable (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.373&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\">certificaci\u00f3n de Asociado<\/a><\/strong> es bastante recomendable, as\u00ed como el curso de la <a rel=\"noreferrer noopener\" aria-label=\"Por otro lado, para conocer los detalles para utilizar servicios en la nube con AWS, este curso sobre la certificaci\u00f3n de Asociado es bastante recomendable, as\u00ed como el curso de la certificaci\u00f3n profesional. (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.372&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\"><strong>certificaci\u00f3n profesional<\/strong><\/a>.<\/p>\n\n\n\n<p>Finalmente en este webinar podr\u00e1s ver los detalles para implementar t\u00e9cnicas de machine learning en <strong><a rel=\"noreferrer noopener\" aria-label=\"Finalmente en este webinar podr\u00e1s ver los detalles para implementar t\u00e9cnicas de machine learning en Azure (opens in a new tab)\" href=\"https:\/\/click.linksynergy.com\/fs-bin\/click?id=cTjR400Zjac&amp;offerid=579862.462&amp;type=3&amp;subid=0&amp;LSNSUBSITE=LSNSUBSITE\" target=\"_blank\">Azure<\/a><\/strong><\/p>\n\n\n\n<p>Suscribete al blog para recibir las notificaciones cuando se agreguen nuevos art\u00edculos<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-2380084220870127\"\n     crossorigin=\"anonymous\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-2380084220870127\"\n     data-ad-slot=\"2437322509\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Pre-procesamiento de datos Hoy en d\u00eda disponemos de una gran cantidad de datos generados por &hellip; <\/p>\n","protected":false},"author":2,"featured_media":1373,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[25,35,46],"tags":[65,66,57,58,56,63,50,59,60,61,62,64],"class_list":["post-334","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmos","category-inteligencia-artificial","category-machine-learning","tag-ajuste-de-escalas","tag-analisis-de-datos","tag-ciencia-de-datos","tag-data-mining","tag-data-science","tag-exploracion","tag-machine-learning","tag-mineria-de-datos","tag-pre-procesamiento","tag-python","tag-seleccion-y-muestreo","tag-transformacion-de-datos"],"aioseo_notices":[],"author_meta":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"featured_img":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/preprocesamiento-300x205.png","featured_image_src":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/preprocesamiento.png","featured_image_src_square":"https:\/\/www.jacobsoft.com.mx\/wp-content\/uploads\/2018\/09\/preprocesamiento.png","author_info":{"display_name":"Jacob Avila Camacho","author_link":"https:\/\/www.jacobsoft.com.mx\/es_mx\/author\/jacob-avila\/"},"coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/algoritmos\/\" class=\"advgb-post-tax-term\">Algoritmos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/\" class=\"advgb-post-tax-term\">Inteligencia Artificial<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Machine Learning<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Algoritmos<\/span>","<span class=\"advgb-post-tax-term\">Inteligencia Artificial<\/span>","<span class=\"advgb-post-tax-term\">Machine Learning<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Ajuste de escalas<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">an\u00e1lisis de datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Ciencia de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Mining<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Data Science<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Exploraci\u00f3n<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">machine learning<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Pre-procesamiento<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Python<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Selecci\u00f3n y Muestreo<\/a>","<a href=\"https:\/\/www.jacobsoft.com.mx\/es_mx\/category\/inteligencia-artificial\/machine-learning\/\" class=\"advgb-post-tax-term\">Transformaci\u00f3n de datos<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Ajuste de escalas<\/span>","<span class=\"advgb-post-tax-term\">an\u00e1lisis de datos<\/span>","<span class=\"advgb-post-tax-term\">Ciencia de Datos<\/span>","<span class=\"advgb-post-tax-term\">Data Mining<\/span>","<span class=\"advgb-post-tax-term\">Data Science<\/span>","<span class=\"advgb-post-tax-term\">Exploraci\u00f3n<\/span>","<span class=\"advgb-post-tax-term\">machine learning<\/span>","<span class=\"advgb-post-tax-term\">Miner\u00eda de Datos<\/span>","<span class=\"advgb-post-tax-term\">Pre-procesamiento<\/span>","<span class=\"advgb-post-tax-term\">Python<\/span>","<span class=\"advgb-post-tax-term\">Selecci\u00f3n y Muestreo<\/span>","<span class=\"advgb-post-tax-term\">Transformaci\u00f3n de datos<\/span>"]}},"comment_count":"10","relative_dates":{"created":"Publicado 8 a\u00f1os hace","modified":"Actualizado 5 a\u00f1os hace"},"absolute_dates":{"created":"Publicado el septiembre 7, 2018","modified":"Actualizado el agosto 22, 2021"},"absolute_dates_time":{"created":"Publicado el septiembre 7, 2018 9:28 pm","modified":"Actualizado el agosto 22, 2021 9:36 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/comments?post=334"}],"version-history":[{"count":37,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/334\/revisions"}],"predecessor-version":[{"id":1806,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/posts\/334\/revisions\/1806"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media\/1373"}],"wp:attachment":[{"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/media?parent=334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/categories?post=334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jacobsoft.com.mx\/es_mx\/wp-json\/wp\/v2\/tags?post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}