Entrenando un modelo de regresi贸n lineal con scikit-learn

3/17
Recursos

Aportes 8

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Este curso esta increible!!!

Un fragmento para predecir el precio de las viviendas con diferentes n煤mero de habitaciones:

n_rooms = 6
n_rooms_std = sc_x.transform(np.array([n_rooms]).reshape(-1, 1))

std_prediction = slr.predict(n_rooms_std)
price = float(sc_y.inverse_transform(std_prediction))*1000
print(f'El precio estimado de una vivienda de {n_rooms} habitaciones en boston es de US${round(price, 2)}') 

output>>> El precio estimado de una vivienda de 6 habitaciones en Boston es de US$19942.03

Tiene error el anteriro, este esta bien

from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression

#Promedio de casas, y mediada de precios
#reshape para eliminar problema de
#Expected 2D array , got 1D array
X=df[鈥楻M鈥橾.values.reshape(-1,1)
y=df[鈥楳EDV鈥橾.values.reshape(-1,1)

sc_x = StandardScaler()
sc_y = StandardScaler()

#standarizacion de los datos
X_std = sc_x.fit_transform(X)
y_std = sc_y.fit_transform(y)

slr= LinearRegression()
slr.fit(X_std, y_std)

#GRAFICAR
plt.ylabel(鈥楳ediana Precio casas en miles MDEV鈥)
plt.xlabel(鈥楶romedio habitaciones RM鈥)

#scatter
plt.scatter(X_std,y_std);

#linea roja de predicci贸n de modelo entrenado slr
plt.plot(X_std, slr.predict(X_std),color=鈥楻鈥)

import numpy as np

num_habitaciones = 5

num_habitaciones_std = sc_x.transform(np.array([num_habitaciones]).reshape(-1,1))
precio = sc_y.inverse_transform(slr.predict(num_habitaciones_std))

print("El precio de una casa con 5 habitaciones en Boston es de ", precio)

Quizas sirva de aclaracion para alguien, con el -1 en reshape(-1,1) le decimos a numpy que 鈥榙ecifre鈥 la nueva dimension basado en la longitud de la dimension previa, es decir si teniamos una dimension de (4,) ahora tendremos una dimension igual a (4,1), si hubieramos puesto reshape(1,-1) tendr铆amos una dimensi贸n igual a (1,4)
|
Fuente: https://stackoverflow.com/questions/18691084/what-does-1-mean-in-numpy-reshape

una representation grafica de lo que hace .reshape(-1,1)

arr:

[2 3 4 5 6 7 8]

la forma es (7,) lo que es solo una dimension

arr.reshape(-1,1)

[[2]
 [3]
 [4]
 [5]
 [6]
 [7]
 [8]]

su forma es de (7,1) por lo que se le agrega una dimension

Est谩n chidos estos cursos en los que comienzan con pr谩ctica y luego se pasa a la teor铆a.

Le falto algo en el print().
"El precio PROMEDIO de una casa con 5 habitaciones en boston es de"
El pronostico en regresion se basa en la media, donde ese sera el valor medio pronosticado en la variable explicada para un valor dado de X (variable explicativa)

from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression

#Promedio de casas, y mediada de precios
#reshape para eliminar problema de
#Expected 2D array , got 1D array
X=df[鈥楻M鈥橾.values.reshape(-1,1)
y=df[鈥楳EDV鈥橾.values.reshape(-1,1)

sc_x = StandardScaler()
sc_y = StandardScaler()

#standarizacion de los datos
X_std = sc_x.fit_transform(X)
y_std = sc_x.fit_transform(y)

slr= LinearRegression()
slr.fit(X_std, y_std)

plt.ylabel(鈥楳ediana Precio casas en miles MDEV鈥)
plt.xlabel(鈥楶romedio habitaciones RM鈥)

#scatter
plt.scatter(X_std,y_std);

#linea roja de predicci贸n de modelo entrenado slr
plt.plot(X_std, slr.predict(X_std),color=鈥楻鈥)