MACHINE LEARNING MODELS
La inteligencia artificial es cualquier método que intente tomar decisiones sobre cualquier tema.
Machine learning es una forma de inteligencia artificial que obtiene resultados derivados de datos. Big
Data, por otro lado, son los datos masivos y los algoritmos que se utilizan para procesarlos.
La forma tradicional de solucionar problemas era de forma estática, las reglas deben ser definidas
explícitamente y el mantenimiento es complicado. Mientras que con machine learning las reglas son
definidas por el algoritmo durante la fase de entrenamiento y se le puede agregar nuevo conocimiento.
ENTRENAMIENTO DE MODELOS
Supervised: se da entrenamiento estableciendo categorías.
Unsupervised: se deja la organización a criterio del algoritmo .
Semi-supervised: se entrega un conjunto limitado de características que permitan clasificar.
Reinforcemennt learning: el modelo obtiene una recompensa o un castigo según los resultados
que obtenga de una decisión, los modelos de machine learning aprende por medio de prueba y
error.
TIPOS DE MODELO
Online learning: Este tipo de modelos reincorpora información sin necesidad de volver a entrenarlo. Es
entrenado incrementalmente, cada paso es rápido y más barato. La desventaja es que la mala
información o anormal degradará el modelo y trabajo previo.
Batch learning: Es entrenado con toda la data disponible, una vez desarrollados no se le puede agregar
más información. A menudo se llama offline learning.
Cada modelo debe ser capaz de generalizar, lo que significa hacer buenas predicciones con
observaciones que no haya sido vistas.
Instance-Based learning (non-parametric algorithms): Son modelos que no asumen nada sobre la data,
puede tener infinitos parámetros, el modelo crea la cantidad de parámetros necesarios. Al no tener
parámetros establecidos, este puede aprender directamente de la data y adaptarse a ella. Las
desventajas de esta forma de aprendizaje es que requiere más tiempo y recursos, el modelo es más
difícil de interpretar y tiende a tener poco espacio para predecir nuevas observaciones.
Model-Based learning (parametric algorithms): El modelo se selecciona con un análisis de los datos. Su
número de parámetros es finito, lo que lo convierte en algo más fácil de interpretar y de entrenar,
porque requiere menos recursos. Entre las desventajas encontramos que los Hyper-parameters
necesitan modificarse y los valores óptimos no son evidentes y que estos modelos son sensibles a los
outliers.
Los principales retos de machine learning
No hay suficiente cantidad de datos para entrenamiento. Una regla empírica es que un modelo debe
tener por lo menos mil observaciones, pero para entrenar un modelo se recomienda utilizar tantos
datos como sea posible.
Puede suceder que a pesar de tener suficiente información esta no sea representativa, ya sea porque
contenga sesgos humanos con el fin de forzar a los datos que expliquen un comportamiento, porque se
cometieron errores de registro o lleva ruido que afecta la calidad de los datos o, también puede ocurrir
que la data contenga campos irrelevantes.
El underfitting al contrario del overfitting, puede ocurrir cuando un modelo es parcialmente entrenado
lo que puede causar un alto sesgo.
pandas
Es una librería para manipulación de datos, puede conectarse a cualquier tipo de archivos. Un
DataFrame está compuesto de varias series. Con la función loc() de la librería se pueden obtener
subconjuntos de un DataFrame, colocando primero las filas o un rango de filas y luego el nombre de las
columnas. Con iloc() se hacen referencia a los índices tanto de filas como de columnas. describe()
proporciona un resumen de estadísticas descriptivas de las columnas numéricas.
Creación de clases
Una clase es un molde de objetos. Dunder (doble underscore) indica cuándo se está utilizando una
variable interna de Python. __init__ es el constructor de la clase. __rep__ indica la forma en la que se va
a representar la clase al imprimirla.
Los pipelines es un proceso de flujos de trabajo ejecutable.
Feature Scaling
El ajuste de la escala de los datos para poder hacerlos comparables. Esto mejora el rendimiento de los
modelos.
Split Train and Test data
El entrenamiento de modelos requiere separar parte de las observaciones para probar y evaluar al
modelo.
Cross validation
Obtiene una evaluación más confiable del rendimiento del modelo al testear k veces sobre k diferentes
subsets sobre el dataset.
Grid Search
Sklearn ofrece opciones para evaluar la estructura de un modelo. Con GridSearchCV que se encarga de
buscar y evaluar los parámetros de un rango determinado. Prueba modelos por mí y determina cuál es
el mejor.
MULTICLASS CLASSIFICATION
Tenemos una serie de observaciones y queremos encontrar las fronteras que dividen cada una de las
clases. La clasificación binaria es de dos clases y la múltiple es de dos o más. Una de las formas de
evaluar el rendimiento de un clasificador es a través de la métrica de accuracy la cual es el total de
respuestas correctas sobre el total de respuestas.
Si un modelo de clasificación binaria da un accuracy de 50% o menos, entonces no tiene buen
rendimiento.
Matriz de confusión
Los cuatro números resultantes se utilizan en la mayoría de los modelos para evaluar métricas. Basados
en los datos de la matriz de confusión el accuracy se define como:
TP+TN
TP+FP+FN+TN
La métrica precision que nos da el porcentaje de predicciones positivas que fueron correctas (de los que
dije que sí, cuántos realmente eran verdaderos).
TP
TP+ FP
La métrica de recall (sensitive o true positive) representa el porcentaje de casos positivos que fueron
detectados correctamente (de todos los que debió decir que sí, cuántos detectó).
TP
TP+ FN
La métrica specificity es el complemento de la métrica precision.