#!/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 import torch import math from copy import deepcopy import numpy #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) limaj=[] difer=[] for remuest in range(...): tea,tsa,tev,tsv,tep,tsp=particion.azaryestrat(datot,...,...,...) #definir red red=tipored.perceptron(numentradas,[bastante],1) #).cuda(device) ep,_,ea=ajuste.ajustar(red,tea,tsa,tev,tsv,tep,tsp,algo=...) limaj.append(ea) difer.append(ep.item()-ea) tea,tsa=lectura.septorch(datot) #definir red red=tipored.perceptron(numentradas,[normal],1) #).cuda(device) red,ea=ajuste.ajustar(red,tea,tsa,None,None,None,None,algo=...,limerr=numpy.median(limaj)) print("Estimacion de error en generalizacion",math.sqrt(ea+numpy.median(difer))) #o mean, centro(max+min/2), scipy.stats.trim_mean, scipy.stats.pmean input('Análisis de residuos') tepor=registro.grafresid(tep,tsp,red) #Analizar la red input('análisis de la red') analizar.analisis(red,tea,tsa,False) #Vemos un caso concreto registro.sacarejemplos(tep,tsp,tepor,varnoms,frel,vals,red)