Está en la página 1de 61

Árboles y random forest para regresión y

clasificación
Dra. Patricia Rayón Villela

1
Contenido
1. Metodología Crisp
– Entendimiento del negocio
– Comprensión de datos
– Preparación de datos
– Modelado
• Regresión
• Clasificación
– Evaluación
• Error
– Despliegue

2
Métodología Crisp

3
En la práctica, muchas
de las tareas se pueden
realizar en un orden
diferente y, a menudo,
será necesario
retroceder a las tareas
anteriores y repetir
ciertas acciones.

1. Entendimiento del
negocio
2. Comprensión de datos
3. Preparación de datos
4. Modelado
5. Evaluación
6. Despliegue
Comprensión del negocio

5
Comprensión del negocio
• Objetivo comercial
– Obtener un precio acorde a las características de una casa
– Predecir el precio de una casa en función de los atributos
principales

• Objetivo de minería de datos


– A partir de datos históricos identificar las principales variables
que definen el precio de una casa
– A partir de los datos históricos utilizar técnicas de predicción
para obtener un precio apropiado para una casa en función de
las variables que inciden en mayor medida en el precio
– Creación de un modelo utilizando datos disponibles para
pronosticar los precios de casa

6
Comprensión de los datos

7
Comprensión de los datos
• La etapa 3 hace énfasis en la integración de datos y las fuentes de
datos
1. Informe inicial de recopilación de datos
i. Enumerar fuentes de datos
ii. Métodos para adquirir los datos y problemas encontrados y
logros
Recopilación de datos iniciales
• Datos existentes. Incluye una amplia variedad de datos, como datos
transaccionales, datos de encuesta, registros Web, etc. Tenga en
cuenta si los datos existentes son suficientes para adaptarse a sus
necesidades.
• Datos adquiridos. ¿Su organización utiliza datos adicionales, como
datos demográficos? Si no los utiliza, considere si son necesarios.
• Datos adicionales. Si las fuentes anteriores no satisfacen sus
necesidades, es posible que necesite realizar encuestas o realizar
seguimientos adicionales para servir de complemento a los
almacenes de datos actuales.
Descripción de los datos
• ¿Con qué atributos contamos?

10
Información
• ¿Qué información inicial podemos obtener?
• Leer archivo CSV
– Train
– Test
• Cantidad de datos
– Número de atributos
– Cantidad de registros
• Tipo de datos
– int64
– float64
– Object
• Una “muestra de los datos”
– df.head()
• Leer el archivo en un dataframe “df”
• df.shape
• df.info()
Gráficas para valores categóricos
• ¿Qué información podemos obtener de una variable categórica?
– Cuantos valores distintos tenemos
– Cuantos datos de cada valor
Contar cuantos elementos de cada
categoría
Con respecto a la variable de interés
Variables numéricas

17
18
19
Universidad Internacional de La Rioja
Comportamiento de la variable de interés

21
22
Diagrama de dispersión

23
Preparación de los datos

24
Información de los datos

¿Qué observamos?
Datos nulos
• ¿Existen datos nulos?
• ¿Cuántos?
• ¿Qué variables?
• ¿Qué porcentaje?

1.Exploratory00_01.ipynb

26
Valores nulos
• df.isnull()
• df.isnull().sum()
Ver solo aquellos datos que tienen datos
faltantes
Que porcentaje de los datos son “faltantes”
¿Qué hace dropna?

¿Qué paso?
Axis=0, axis=1
• Dafault axis=0
Variables que tienen datos nulos

34
¿Qué hacemos con los datos nulos?
• Imputación
• Datos categóricos
– Moda
– Ffil, bfill
• Datos numéricos
– Reemplazar con la media
– Reemplazar con la mediana
– Moda
– Reemplazar ffill
– Reemplazar bfill

35
Seleccionar valores numéricos (int, float)

36
Variables numéricas (37+1)
1. Id 13. TotalBsmtSF 25. Fireplaces 37. YrSold
2. MSSubClass 14. 1stFlrSF 26. GarageYrBlt
3. LotFrontage 15. 2ndFlrSF 27. GarageCars • SalePrice
4. LotArea 16. LowQualFinSF 28. GarageArea
5. OverallQual 17. GrLivArea 29. WoodDeckSF
6. OverallCond 18. BsmtFullBath 30. OpenPorchSF
7. YearBuilt 19. BsmtHalfBath 31. EnclosedPorch
8. YearRemodAdd 20. FullBath 32. 3SsnPorch
9. MasVnrArea 21. HalfBath 33. ScreenPorch
10. BsmtFinSF1 22. BedroomAbvGr 34. PoolArea
11. BsmtFinSF2 23. KitchenAbvGr 35. MiscVal
12. BsmtUnfSF 24. TotRmsAbvGrd 36. MoSold

37
Imputación Eliminar alguna
variable, ojo con
axis

Llenar con la
mediana o mean

38
Datos categóricos
DATOS CATEGÓRICOS: conteo
df_ = df.select_dtypes(exclude=['int64', 'float64'])
for col in df_.columns:
print(df_[col].unique()) # to print categories name only
print(df_[col].value_counts()) # to print count of every category

Universidad Internacional de La Rioja


Imputación
• Rellenar hacia adelante ffill
• Rellenar hacia atrás bfill

40
Utilizando la moda

41
Visualizar la correlación entre variables

42
Los valores con mayor correlación

43
DATOS CATEGÓRICOS: conteo
df_ = df.select_dtypes(exclude=['int64', 'float64'])
for col in df_.columns:
print(df_[col].unique()) # to print categories name only
print(df_[col].value_counts()) # to print count of every category

Universidad Internacional de La Rioja


dfcat = df.select_dtypes(exclude=['int64', 'float64']) # excluye todos los valores numericos
print("\nCategorical column:")
for col in dfcat.columns:
print(dfcat[col].name) # imprime el nombre de las categorías
print(dfcat[col].unique()) # imprime el nombre de los elementos únicos de cada categoría
##print(df_.value_counts(df_[col].name).reset_index(name='freq'))# imprime la frecuencia de
cada valor unico de cada categoria
print(dfcat[col].value_counts().reset_index(name='freq')) #hace lo mismo que la anterior pero
le pone index en lugar del nombre de la categoría

Universidad Internacional de La Rioja


CONSOLIDANDO LOS DATOS
dfnumcat= pd.concat([dfnum, dfcat],axis=1)
dfnumcat.head()

Numéricas Categóricas Numéricas_Categóricas

Universidad Internacional de La Rioja


* Reordenado en base a las columnas del
DataFrame original

Universidad Internacional de La Rioja


Numéricos y categóricos 100% numéricos

Universidad Internacional de La Rioja


Modelado

49
Modelado
• Predicción
– Random Forest
– Decision Tree Regression
• Clasificación
– Decision Tree

50
Árbol de decisión de regresión
• Ver código: 2.DecisionTreeRegressor.ipynb

51
Random Forest regressor

52
Evaluación de algoritmos de regresión
3.Model Evaluation for Forecasting.ipynb

Mean Squared Error in Python

Mean Absolute Error in Python

Computing the R2 in Python

53
DecisíonTreeRegressor

Error de entrenamiento

Obtener error entre yTest y y_pred

54
Random Forest

https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html

55
Decision Tree
4.Árbol de decision.ipynb

Definir categorias

yclass

56
57
Evaluación

58
Tipos de errores
• MSE o error cuadrado medio

• RMSE o raíz del error cuadrado medio

Model Evaluation for Forecasting.ipynb


60
www.unir.net

También podría gustarte