Está en la página 1de 3

MÓDULO V

Workshop
Modelos de regresión

Consigna:

Iniciaremos realizando un breve EDA del dataset:

1. Importar las librerías necesarias para la realización del desafío (Ejemplo: pandas,
numpy, matplotlib, etc.) y el dataset propuesto para la ejercitación.
2. Imprimir las 5 primeras filas. [dp.head()]]
3. Imprimir las 5 últimas filas. [dp.tail()
4. Imprimir las dimensiones del dataset. [print(dp_shape)]
5. Obtener la totalidad de registros por columnas. [dp.count()]
6. Analizar el tipo de dato de cada columna. [pd.dtypes]
7. Obtener el tipo de estructura del dataset. Ejemplo: si es o no un DataFrame. [type(dp)]
8. Listar los nombre de las columnas. [print(dp.columns)]

Machine Learning – Modelo de Regresión Lineal, Árboles de Decisión, KNN:

9. Filtrar el dataset por la columna property_type con los valores de: “PH”, “Casa”,
”Departamento” y el feature12 == “Capital Federal” (Dato: Nos debe dar un shape de
91485 rows x 19 comlumns)
 dp_fitrado = dp[dp.property_type.isin(["PH", "Casa",
"Departamento"])&(dp.12 == "Capital Federal")]
10. Quedarnos con aquellas propiedades cuya superficie total es menor igual a 1000 m2 y
mayor igual a 15 m2 (Dato: Nos debe dar un shape 82405, 19).
 dp_filtrado = dp_filtrado[(dp_filtrado.surface_total <= 1000)&
(dp_filtrado.surface_total >= 15)]
 dp_filtrado.shape
11. Seleccionar aquellas propiedades cuyo precio es menos igual a 4000000 dólares.
(Dato: Nos debe dar un shape (82373, 19)).
 dp_filtrado = dp_filtrado[(dp_filtrado.price <= 40000000)]
 pd_filtrado.shape
12. Ahora deberemos quedarnos con las columnas: romos, bedrooms, bathrooms,
surface_total, surface_covered y price. (Dato: Nos debe dar un shape (82373, 6)).
 dp_fitrado = dp_filtrado[("rooms", "bedrooms", "bathrooms", "surface_total",
"surface_covered", "price")]
 dp_filtrado.shape
13. Eliminar los valores missings del dataset.
 Primero hacemos un conteo con isnull y concatenamos con sum
 print(dp_filtrado.isnull().sim())
 Luego eliminamos los valores missings
 dp_filtrado = dp_filtrado.dropdna()
 Luego verificamos que no tengamos valores missings
 print(dp_filtrado.isnull().sum())

14. Verificar el shape del dataset luego de la eliminación. (Dato: Nos debe dar un shape
(81019, 6)).
 dp_filtrado.shape
15. Realizar el análisis de correlación del dataset.
 import seaborn as sns
 corr = dp_filtrado.corr()
 sns.heatmap(corr, cbar = True, square = True, annot = True, fmt = ".2f",
annot_kws = {"size": 15}, cmap = "coolwarm")
16. Generar los features de X e Y
 # Importamos las librerias

 from sklearn.metrics import mean_squared_error # mean_squared_error se
utiliza para saber cuanto se equivoca nuestro modelo
 from sklearn.model_selection import train_test_split # train_test_split sirve
para separar la data en train y test
 x = dp_filtrado[["rooms", "bedrooms", "bathrooms", "surface_total",
"surface_covered"]] #seleccionamos las variables predict
 y = dp_filtrado.price #defino el target

17. Separar los datos en Train (70%) y Test (30%) con un random_state=42.
 # separo el Train y Test

 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30,
random_state = 42) #random_state es la semilla
18. Crear un objeto de Regresión Lineal
 from sklearn.linear_model import LinearRegression
 linear_model = LinealRegression()
19. Entrenar el modelo creado
 linear_model.fit(X_train,y_train)
 #Evaluamos el modelo

 from sklearn.metrics import mean_squared_error
 modelo = ["Regresion Lineal"]

 for i, model in enumerate ([linear_model]):
 y_train_pred = model.predict(X_train)
 y_test_pred = model.predict (X_test)

 print(f"Modelo benchmark: {modelo[i]}")

 rmse_train = np.sqrt(mean_squared_error(y_train, y_train_pred))
 rmse_test = np.sqrt(mean_squared_error(y_test, y_test_pred))
 print(f"Raiz del error cuadratico medio en train: {rmse_train}")
 print(f"Raiz del error cuadratico medio en test: {rmse_test}")
20. Realizar la predicción del modelo en Train y Test y calcular el RMSE.
21. Importar las librerías para un modelo de DecisionTreeTegressor y
KNeighborsRegressor.
22. Crear un modelo de DecisionTreeRegressor (max_depth=3, random_state=42) y
KNeighborsRegressor (n_neighbors=5).
23. Entrenar el modelo de DecisionTreeRegressor.
24. Entrenar el modelo de KNeighborsRegressor.
25. Realizar la predicción del modelo en Train y Test y calcular el RMSE para ambos
modelos DecisionTreeRegressor y KNeighborsRegressor.
26. Para pensar: ¿Qué podemos hacer para mejorar nuestro modelo? Plantear alguna
modificación a realizarse para mejorar la performance del modelo.

También podría gustarte