#!/usr/bin/python3 # -*- coding: utf-8 -*- """ Perceptrón para estimar precio de viviendas. """ import torch.nn as nn import lectura import preproceso import particion import tipored import ajuste import registro import random import analizar from matplotlib import pyplot from copy import deepcopy import torch import math #Cargamos los datos, todos datos=lectura.leelistas('casas.trn') numentradas=len(datos[0])-1 varnoms=['criminalidad','residencial','industrial','rio','polucion','habitaciones','casas-viejas','distancia-trabajo', 'autovias','impuestos','ratio-aula','negr@s','pobreza','precio'] #Descripción numérica #lectura.estadistica(varnoms,datos) #Descripción gráfica frel,vals=lectura.grafica(varnoms,datos,False) #Preproceso a distribución normal media 0 varianza 1 datot=preproceso.mediavar(datos) #Partición para bootstrap gener,tep,tsp=particion.generazarremuest(datot,...) #error = funerr.ErrorPropio('medabs') #error = nn.SmoothL1Loss() #error = nn.L1Loss() #presenerror=math.sqrt #definir algoritmo de ajuste #torch.optim.LBFGS #torch.optim.Adagrad alg=torch.optim.Adam #torch.optim.ASGD #torch.optim.RMSprop #torch.optim.Rprop #torch.optim.SGD rmse=[] ermin=10000 for _ in range(...): red0=tipored.perceptron(numentradas,[...],1) tea,tsa=next(iter(gener)) err,red0,_=ajuste.ajustar(red0,tea,tsa,None,None,tep,tsp,algo=alg,kaj=...,numiter=...) rmse.append(math.sqrt(err.item())) if err