En este capítulo vamos a pasar a una parte clave de todo experimento de Machine Learning: el procesado previo de los datos, en el que limpiaremos y prepararemos los datos de entrenamiento y evaluación a utilizar, para que nuestro modelo entrenado funcione lo mejor posible.
Related Articles
Como podemos ver al explorar nuestros datos, hay varias cosas que “ensucian” nuestro conjunto de datos (caracteres especiales en los nombres, filas con datos de encabezado por todo el archivo …), campos sin valor asignado, campos tratados como texto cuando son números…
Con el fin de obtener los mejores resultados de nuestro experimento, debemos preparar y limpiar nuestros datos correctamente, y en este capítulo vamos a aprovechar algunos de los módulos de Azure ML Studio para lograr nuestra meta.
En primer lugar, ya que algunos jugadores tenían algunas condiciones especiales en temporadas específicas, están marcados con un asterisco en sus nombres. Este carácter especial, que no forma parte del nombre real del jugador, podría distorsionar nuestro conjunto de datos afectando a la calidad de nuestros resultados, ya que el mismo jugador podría ser tratado como uno diferente por esta minúscula diferencia en el nombre.
En el menú de la izquierda, bajo la categoría “Text Analytics”, podemos encontrar el módulo “Preprocess Text”, que se ocupará de esto por nosotros simplemente desmarcando todos los checkboxes excepto el de “Remove special characters”. Ten en cuenta que debemos establecer también el idioma (inglés en este caso) en la primera lista desplegable, y seleccionar la columna deseada (Player, en la que encontramos el nombre del jugador) para aplicar la transformación.
Si ejecutamos el experimento otra vez, tendremos un dataset como resultado, conteniendo tanto el nombre original del jugador (Player) como una nueva columna eliminando estos caracteres especiales (Preprocessed Player):

update t1 set Player=PreprocessedPlayer;select * from t1 where Rank”Rk”;

Si vuelves a ejecutar el experimento, notarás que ahora tenemos más de 14k filas en lugar de las 16k iniciales, y ninguna fila de encabezado se incluye ahora en nuestros datos.
Para realizar varias operaciones numéricas (como rangos aceptados, reemplazar valores no incluidos, etc.), debemos asegurarnos de que la herramienta esté tratando las columnas numéricas como el tipo que son (enteros o flotantes). El modulo “Edit Metadata” nos ayudará de nuevo a lograrlo, por lo que tendremos que añadir otros dos módulos, uno para las columnas de tipo Integer (Rank, Age, GamesPlayed, GamesStarted, MinutesPlayed, FGM, FGA, 3PM, 3PA, 2PM , 2PA, FTM, FTA, ORB, DRB, TRB, AST, STL, BLK, TOV, PF, PTS, Season) y otra para las columnas de tipo Floating Point (FG%,3P%,2P%,eFG%,FT%,PER,TS%,3PAr,FTr,ORB%,DRB%,TRB%,AST%,STL%,BLK%,TOV%,USG%,OWS,DWS,WS,WS/48,OBPM,DBPM,BPM,VORP), seleccionando las columnas con el selector de columnas.


Ahora que estamos seguros de que cada columna se maneja correctamente, vamos a limpir los datos analizando cuántas veces faltan valores en las distintas columnas. Busca el modulo “Clean missing data” en el menú de la izquierda, en la categoría “Data Transformation > Manipulation”. En este caso, nos centraremos en los valores numéricos de nuestro conjunto de datos, y con este módulo podemos elegir qué hacer cuando no se encuentra un valor (podemos configurar el método de sustitución para reemplazar los valores que falten por uno de nuestra elección: media, mediana, moda, borrar la fila, borrar la columna o reemplazar usando el método Probabilistic PCA).
Normalmente, lo que debemos hacer es quitar toda la fila, pero en este caso vamos a reemplazar los valores numéricos que faltan con el valor medio seleccionando esta opción en el menú desplegable, para poder analizar cuántas veces sucedió y decidir si la característica afectada es relevante (pocas sustituciones, por lo que los datos son válidos) o no.
En este caso, ya que ya nos aseguramos de que los valores numéricos se traten como tal, podemos seleccionar las columnas por tipo en lugar de por nombre en el selector de columnas. Marca la pestaña “WITH RULES”, haz click en el botón “NO COLUMNS” y luego agrega una regla para cada tipo numérico (Numeric, Integer, Double) disponible en la lista desplegable:



- Las entradas conocidas para nuestro experimento (Player, Position, Age, Team y Season)
- La feature a predecir (PER)
En el menu de la izquierda, busca el modulo “Select Columns in Dataset”, en la categoría “Data Transformation > Manipulation”, arrástralo al canvas y conecta su punto de entrada con el punto de salida izquierdo del módulo anterior, el que contiene el conjunto de datos resultante del paso anterior. Para seleccionar las columnas necesarias, puedes escogerlas por nombre en el selector de columnas:
Para normalizar los valores de nuestro PER, busca el modulo “Clip Values” en la categoría “Data Transformation > Scale and Reduce” en el menú de la izquierda y arrástralo a tu canvas. Cuando lo conectes al módulo anterior, selecciona la opción “ClipPeaksAndSubpeaks” en la lista desplegable, establece los valores para el umbral superior (35) y el umbral inferior (0) ya que serán los valores máximo y mínimo aceptados, y selecciona sólo la columna PER con el selector de columnas:

This post first appeared on MSDN Blogs | Get The Latest Information, Insights, Announcements, And News From Microsoft Experts And Developers In The MSDN Blogs., please read the originial post: here