Modelos de Machine Learning
Datos de ejemplo INEGI: Personal ocupado total. Sector privado y paraestatal (Número de personas), Estados Unidos Mexicanos, 2018
Indicadores20251023085116.csv
Arbol de Desición (Descision Tree)
TODO: decision tree image.
Se utilizan datos para decidir como separar (casas en este caso) en dos grupos, y otra véz para determinar el precio de cada grupo. El paso de capturar patrones de datos se llama fitting o entrenamiento del modelo. Los datos utilizados para fitting se llaman datos de entrenamiento.
DEspués que los modelos han sido entrenados, se puede aplicar a nuevos datos para predecir precios de casas adicionales.
TODO: Image 2 arboles de Desición
Dependiendo del número de factores a considerar, se pueden hacer más separaciones, para hacer el arbol más profundo. Por ejemplo:
TODO: Imágen deeper decision tree
Las predicciones se hacen recorriendo a través del arbol, eligiendo la ruta que se ajuste a las características (factores) hta el fondo del arbol. El punto al final donde se hace la predicción se llama hoja (leaf).
Exploración de datos:
El primer paso en cualquier proyecto de ML es la exploración de datos. Pandas es la herramienta principal de los cientificos de datos.
Conceptos de Pandas
- DataFrame, es donde se almacenan los datos, es parecido a una tabla en SQL.
Seleccionar el objetivo de la predicción (Prediction Target)
Se puede tomar una variable (columna) con dot-notation. Los valores de una sola columna se almacenan en una Serie, que es como un DataFrame con solo una columna de datos. Seleccionar las columnas que se quiere predecir se llama prediction target, por convención se le llama y.
y = sample_data.Price
Elegir características (features)
Las columnas que se alimentan al modelo (y posteriormente utilizadas para predecir), se llaman features. En este caso las columnas usadas para determinar el precio. En ocasiones se usan todas las columnas excepto el objetivo como características. Otras veces es mejor con menos características.
Por convención features se llama X.
sample_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longitude']
X = sample_data[sample_features]
Revisón rápida de los datos.
X.describe()
X.head()
Construcción del modelo
Pasos para contruir y usa un modelo:
- Definición: Que tipo de modelo será. ¿Arbol de decision? Algunos otros parámetros se especifican también.
- Fit: Captura patrones en los datos. El primer corazón del modelado.
- Predict: Eso, predecir.
- Evaluar: Determinar que tan precisas son las predicciones del modelo.
Ejemplo de arbol de decision con scikit-learn.
from sklearn.tree import DecisionTreeRegressor
sample_model = DecisionTreeRegressor(random_state=1)
sample_model.fit(X, y)
Muhcos modelos de ML permiten algo de aleatoriedad en el entrenamiento.
Especificar un número para random_state asegura obtener el mismo
resultado en cada ejecución. Esto es una buena práctica. Usar cualquier
número y la calidad del modelo no dependerá meningfully en cada valor
que se elija.
Predecir en las primeras filas, idealmente esto se hace con nuevos datos.
print(X.head())
print(sample_model.predict(X.head))
Validación del modelo
Validación del calidad del modelo esta medida por la precisión predictiva, las predicciones son cercanas a la realidad.
Es necesario separar los datos de entrenamieno para evitar predicciones con los mismos datos usados para el entrenamiento. Primero se sumariza la calidad del modelo una soloa métrica, por ejemplo MEan Absolute Error (entre otras).
error = actual - predictided
MAE tomamos el valor absoluto de cada error, se convierte a número positivo y se toma el promedio de esos errores absolutos. Esta es la medida de la calidad del modelo.
Esta medida se llama también in-sample score. Para obtener una medida precisa es necesario dividir la muestra de datos en datos de entrenamiento y datos de validación.
TODO validation cell
Underfitting y Overfitting
En arboles de decisión, la profunndidad del arbol es la mas importante. Para determinar la profundidad óptima. Si es demasiado profundo, cada hoja tiene menos elementos. Esto provoca alta precision de las predicciones en los datos de la muestra pero resultados pobres en datos reales. A esto se llama overfitting.
El caso extremo contrario es cuando la profundidad del arbol es muy corta, las predicciones pueden ser muy alejadas de la realidad tanto en los datos de entrenamiento como los reales. Esto es underfitting.
Buscamos el punto medio entre uno y otro.
TODO fit sweet spot cell
Bosques aleatorios
Desicion trees con muchos niveles llevan a overfitting, muy pocos a underfitting. Haciendo la predicción promediando los resultados de muchos arboles se obtiene un resultado más preciso, a esto se llama random forest.
TODO random forest cell
Modelos de Machine Learning
Datos de ejemplo INEGI: Personal ocupado total. Sector privado y paraestatal (Número de personas), Estados Unidos Mexicanos, 2018
Indicadores20251023085116.csv
Arbol de Desición (Descision Tree)
TODO: decision tree image.
Se utilizan datos para decidir como separar (casas en este caso) en dos grupos, y otra véz para determinar el precio de cada grupo. El paso de capturar patrones de datos se llama fitting o entrenamiento del modelo. Los datos utilizados para fitting se llaman datos de entrenamiento.
DEspués que los modelos han sido entrenados, se puede aplicar a nuevos datos para predecir precios de casas adicionales.
TODO: Image 2 arboles de Desición
Dependiendo del número de factores a considerar, se pueden hacer más separaciones, para hacer el arbol más profundo. Por ejemplo:
TODO: Imágen deeper decision tree
Las predicciones se hacen recorriendo a través del arbol, eligiendo la ruta que se ajuste a las características (factores) hta el fondo del arbol. El punto al final donde se hace la predicción se llama hoja (leaf).
Exploración de datos:
El primer paso en cualquier proyecto de ML es la exploración de datos. Pandas es la herramienta principal de los cientificos de datos.
Conceptos de Pandas
- DataFrame, es donde se almacenan los datos, es parecido a una tabla en SQL.
Seleccionar el objetivo de la predicción (Prediction Target)
Se puede tomar una variable (columna) con dot-notation. Los valores de una sola columna se almacenan en una Serie, que es como un DataFrame con solo una columna de datos. Seleccionar las columnas que se quiere predecir se llama prediction target, por convención se le llama y.
y = sample_data.Price
Elegir características (features)
Las columnas que se alimentan al modelo (y posteriormente utilizadas para predecir), se llaman features. En este caso las columnas usadas para determinar el precio. En ocasiones se usan todas las columnas excepto el objetivo como características. Otras veces es mejor con menos características.
Por convención features se llama X.
sample_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longitude']
X = sample_data[sample_features]
Revisón rápida de los datos.
X.describe()
X.head()
Construcción del modelo
Pasos para contruir y usa un modelo:
- Definición: Que tipo de modelo será. ¿Arbol de decision? Algunos otros parámetros se especifican también.
- Fit: Captura patrones en los datos. El primer corazón del modelado.
- Predict: Eso, predecir.
- Evaluar: Determinar que tan precisas son las predicciones del modelo.
Ejemplo de arbol de decision con scikit-learn.
from sklearn.tree import DecisionTreeRegressor
sample_model = DecisionTreeRegressor(random_state=1)
sample_model.fit(X, y)
Muhcos modelos de ML permiten algo de aleatoriedad en el entrenamiento.
Especificar un número para random_state asegura obtener el mismo
resultado en cada ejecución. Esto es una buena práctica. Usar cualquier
número y la calidad del modelo no dependerá meningfully en cada valor
que se elija.
Predecir en las primeras filas, idealmente esto se hace con nuevos datos.
print(X.head())
print(sample_model.predict(X.head))
Validación del modelo
Validación del calidad del modelo esta medida por la precisión predictiva, las predicciones son cercanas a la realidad.
Es necesario separar los datos de entrenamieno para evitar predicciones con los mismos datos usados para el entrenamiento. Primero se sumariza la calidad del modelo una soloa métrica, por ejemplo MEan Absolute Error (entre otras).
error = actual - predictided
MAE tomamos el valor absoluto de cada error, se convierte a número positivo y se toma el promedio de esos errores absolutos. Esta es la medida de la calidad del modelo.
Esta medida se llama también in-sample score. Para obtener una medida precisa es necesario dividir la muestra de datos en datos de entrenamiento y datos de validación.
TODO validation cell
Underfitting y Overfitting
En arboles de decisión, la profunndidad del arbol es la mas importante. Para determinar la profundidad óptima. Si es demasiado profundo, cada hoja tiene menos elementos. Esto provoca alta precision de las predicciones en los datos de la muestra pero resultados pobres en datos reales. A esto se llama overfitting.
El caso extremo contrario es cuando la profundidad del arbol es muy corta, las predicciones pueden ser muy alejadas de la realidad tanto en los datos de entrenamiento como los reales. Esto es underfitting.
Buscamos el punto medio entre uno y otro.
TODO fit sweet spot cell
Bosques aleatorios
Desicion trees con muchos niveles llevan a overfitting, muy pocos a underfitting. Haciendo la predicción promediando los resultados de muchos arboles se obtiene un resultado más preciso, a esto se llama random forest.
TODO random forest cell
me@celisdelafuente.net
GPG: 2D55 1002 2615 FA80
Software engineer 🧑🏻💻 by trade (🐧 Linux rocks!), archery 🏹 and photography 📷 enthusiast, music lover 🪈🎸🎹.
You can read my resume here.