Mejorar la calidad del dato es posible con Machine Learning
Cuando queremos entrenar un modelo de “Machine Learning” tendemos a aumentar el número de características, columnas, de nuestras observaciones. El objetivo es incorporar un data set lo más rico posible. Esto permitirá una mejor predicción del valor que buscamos, etiqueta, en los modelos de aprendizaje supervisados.
Ingeniería de características
Si bien es verdad que pocas características hacen más difícil la predicción de la etiqueta, el aumento de estas, las características, hace que el entrenamiento del modelo sea una tarea computacionalmente más compleja. Esto se debe a las interferencias introducidas en el mismo por las características con poca o ninguna influencia en el valor a predecir.
La ingeniería de características trata esta problemática en el ciclo de vida del Machine Learning. Normalmente no se hace suficiente hincapié. A veces por el insuficiente conocimiento del dominio del problema por parte de los científicos de datos. Otras, por la dificultad de la comunicación con los expertos de domino. En cualquier caso, caben dos enfoques fundamentales para tratar esta circunstancia, a través del conocimiento del dominio, o de manera más automatizada en el proceso del conjunto de datos y entrenamiento del modelo.
Un experto en el dominio de conocimientos en el que estamos trabajando, podría indicar, por ejemplo:
- Que en un dataset de datos médicos, las características de peso y altura, a pesar de ser relevantes, son imprecisas para los algoritmos. Un peso de 140 Kg no tiene que ser un elemento perjudicial para la salud si el individuo tiene una estatura de 200 cm. Se podría incluir una nueva característica: el índice de masa corporal, el peso en Kg. divido por el cuadrado de altura expresada en metros. Sin duda es una característica que aportará más información, valor al modelo y que mejorará sus métricas. En la fase de entrenamiento del modelo, el algoritmo no tendrá que enfrentarse a mismos valores con diferentes repercusiones, lo que sin duda complica el entrenamiento.
- En un conjunto de datos de venta de vehículos de segunda mano, la relación de compresión del motor, al ser un dato que, normalmente, la persona que va a comprar el vehículo desconoce, presumiblemente influirá poco en el precio que el comprador esté dispuesto a pagar por él. Quizás se podría eliminar dicha característica, sin detrimento de la capacidad de predicción del modelo. Así se simplificaría la complejidad del entrenamiento del modelo, lo que sin duda llevará a mejores resultados.
- En el caso de decidir el número de bicicletas que se alquilarán por hora, en un conjunto de datos que contiene por cada hora una descripción completa de la meteorología temperatura, viento, dirección dominante, humedad, así como características del día, festivo, víspera, día de la semana, mes, año y por supuesto el número de bicicletas alquiladas. A partir de los datos del propio dataset, podríamos calcular el número de bicicletas alquiladas en las doce horas anteriores a la de la observación, el número de bicicletas alquiladas en la misma hora en los doce últimos días, el número de bicicletas alquiladas, a la misma hora y en el mismo día en los últimos doce meses. Estos datos podrán mejorar la exactitud del modelo.
Nuestras suposiciones anteriores, a pesar de parecer razonables y explicar fenómenos, no necesariamente tienen que ser válidas y mejorar el modelo.
Azure Machine Learning Studio para mejorar la calidad del dato
Azure Machine Learning Studio
incorpora un módulo esencial en el análisis de las características, el módulo “Principal Component Analysis” cuya función es seleccionar las n características con mayor poder de predicción en el modelo y puntuar ese poder en cada una de las características.
Admite como entrada un subconjunto o todas las características del data set que estamos tratando y como segundo parámetro el numero de características con mayor poder de predicción que deseamos obtener.
Como salida devolverá un dataset con las n columnas con mayor influencia en la etiqueta
del modelo. En pocas palabras, el módulo trata de “condensar” la mayor cantidad de información de los datos en el menor número de columnas, características con el fin de que el entrenamiento del modelo sea la más eficaz y eficiente posible, ya que variables con poco o ningún valor serán eliminadas dejando así de provocar interferencias en el modelo.
Mediante distintos ensayos, podremos determinar si los cambios en las características que hemos introducido son válidos y pueden mejorar el modelo final.
Como podemos ver, la ingeniería de características es un paso fundamental en el ciclo de vida de un modelo de machine learning. Bien aplicada puede suponer el éxito del modelo, mejorar la calidad del dato, las métricas y disminuir el tiempo de entrenamiento del modelo. Con grandes conjuntos de datos es un factor fundamental, pues permitirá iteraciones más eficientes durante el proceso de entrenamiento.