Primeros pasos con Machine Learning. 

Ejemplo de estimacion de precios de casas con Regresión Lineal.

En este ejemplo, os muestro una rutina de cálculo de precios de casas con sklearn. Sklearn es un framework que se programa en python, de uso bastante extendido. No es de los más óptimos en cuanto a procesos de grandes volumenes de datos, pero tiene algo bueno: es bastante clarito, completo, bien documentado y su curva de aprendizaje es bastante suave. Para que complicarnos, ¿no? Si total, estamos empezando. 

 

En este ejemplo, sencillito, voy a utilizar los datos de casas a la venta en California que vienen incorporados en el mismo sklearn. Con Machine Learning y sus técnicas, podemos predecir, de alguna forma y con cierto nivel de certeza, precios de nuevas casas, en base a una serie de cálculos que vamos e afectuar automáticamente. Modificad el código y probad otros datos, aparte de estos, para cálculos específicos.

 

Podeis instalar sklearn con pip, como viene siendo habitual, como root, para jugar con el código.

# pip install sklearn

 

 

#!/usr/bin/python

"""

Simple Linear Regression 1 feature Example with sklearn

Estimacion de Precios de casas

same license as sklearn (BSD LICENSE)

(c) 2017 Javier Garcia Gonzalez

"""

from sklearn import linear_model as lm, datasets as dta
import numpy as np

TESTPERCENT=1.0/3.0

"""
@estimatePrices
Predict house prices from test data
Checking correctness of training data
"""
def estimatePrices(X, y, features):
Limit = int(len(X) * TESTPERCENT)
assert(X.shape[0]==y.shape[0])

X_train=X[:-Limit*2,:]
y_train=np.reshape(y[:-Limit*2], (y.shape[0]-Limit*2, 1))

X_CV=X[Limit:-Limit,:]
y_CV=np.reshape(y[Limit:-Limit], (Limit, 1))

X_test=X[-Limit:,:]
y_test=np.reshape(y[-Limit:], (Limit, 1))

lr=lm.LinearRegression()

print "\n\nTraining...",
# Train
lr.fit(X_train, y_train)
print "done"
print "-"*15

# Variance score: 1 is perfect prediction
print 'Variance : %02.2f' % lr.score(X_test, y_test)

# The mean squared error
print "Cross Validation Error : %02.2f" % np.mean((lr.predict(X_CV) - y_CV) ** 2)

# The mean squared error on testing
print "Testing Error : %02.2f" % np.mean((lr.predict(X_test) - y_test) ** 2)

print """

to predict a price from current data:
lr.predict(X_tocheck)

"""


def go():

stuff=dta.fetch_california_housing()
data=stuff['data']
features=stuff['feature_names']
prices=np.reshape(stuff['target'], (stuff['target'].shape[0], 1))
estimatePrices(data, prices, features)

if __name__=="__main__":
go()

 

descargar skprecios.py

Current rating: 1
  • Share

Comments

There are currently no comments

New Comment

* Please fill all required form field, thanks!