Sunteți pe pagina 1din 2

Laboratorio de Regresión Linear

Amilcar Maximo Laura Canaza


Escuela de Ingenieria de Sistemas
Universidad Nacional
de San Agustı́n
Arequipa-Perú
alaurac@unsa.edu.pe

I. M UESTRA DE DATOS EN DIAGRAMAS II. M UESTRA DE COSTOS HALLADOS


Escribimos el código necesario para mostrar los puntos de Para cada una de las predicciones, hallé el costo, el cual
los datos y las predicciones manuales hechas, Figura 1. es representado en un punto en el espacio tridimensional. De
todos ellos, hay una de las predicciones que tiene el costo
minimo: representado por el punto azul en la Figura 2.

Figura 1. puntos y predicciones


Fuente: Creación propia

Figura 2. costos
Listing 1. Mostrar puntos y predicciones Fuente: Creación propia
1 import m a t p l o t l i b . p y p l o t a s p l t
2 import numpy a s np
3
Listing 2. Mostrar costos
4 year = [ ]
1 from m p l t o o l k i t s . m p l o t 3 d import Axes3D
5 salary = []
2 import m a t p l o t l i b . p y p l o t a s p l t
6
3 import numpy a s np
7 f = open ( ” s a l a r y . t x t ” , ” r ” )
4
8 l = f . readline () . strip ()
5 fig = plt . figure ()
9
6 ax = f i g . a d d s u b p l o t ( 1 1 1 , p r o j e c t i o n = ’ 3 d ’ )
10 while l :
7
11 y e a r . append ( f l o a t ( l . s p l i t ( ”\ t ” ) [ 0 ] ) )
8 year = [ ]
12 s a l a r y . append ( f l o a t ( l . s p l i t ( ”\ t ” ) [ 1 ] ) )
9 salary = []
13 l = f . readline () . strip ()
10
14 f . close ()
11 f = open ( ” s a l a r y . t x t ” , ” r ” )
15
12 l = f . readline () . strip ()
16 x = np . l i n s p a c e ( 0 , 1 1 , 2 )
13
17
14 while l :
18 f o r a i n np . a r a n g e ( 0 , 3 0 0 0 0 , 5 0 0 0 ) :
15 y e a r . append ( f l o a t ( l . s p l i t ( ”\ t ” ) [ 0 ] ) )
19 f o r b i n np . a r a n g e ( −30000 , 3 0 0 0 0 , 5 0 0 0 ) :
16 s a l a r y . append ( f l o a t ( l . s p l i t ( ”\ t ” ) [ 1 ] ) )
20 y = a ∗ x + b
17 l = f . readline () . strip ()
21 plt . plot (x , y)
18 f . close ()
22
19
23 plt . ylabel ( ’ Salary ’ )
20 x = np . l i n s p a c e ( 0 , 3 0 , 2 )
24 p l t . x l a b e l ( ’ Year ’ )
21
25 p l t . p l o t ( np . a r r a y ( y e a r ) , np . a r r a y ( s a l a r y ) , ’wo ’ ,
22 costo suma = 0
m a r k e r s i z e =6 )
23 minimo costo = 10000000000000000;
26 p l t . show ( )
24 minimo theta 0 = 0
25 minimo theta 1 = 0

1
26 f o r a i n np . a r a n g e ( 9 3 0 0 , 9 7 0 0 , 1 5 ) : 9 m = m + 1
27 f o r b i n np . a r a n g e ( 2 5 1 5 0 , 2 5 5 5 0 , 1 5 ) : 10 c o s t o s u m a = c o s t o s u m a / ( 2 ∗ m)
28 m = 0 11
29 f o r i i n range ( l e n ( y e a r ) ) : 12 ax . s c a t t e r ( a , b , c o s t o s u m a , c= ’ r ’ , m a r k e r = ’ o ’ ,
30 cuadrado = ( a ∗ year [ i ] + b − s a l a r y [ i ] ) s =3)
∗∗ 2
31 Este código, aunque no se muestra completamente, nos
32 c o s t o s u m a += c u a d r a d o
33 m = m + 1 imprimira el costo del Test set.
34 c o s t o s u m a = c o s t o s u m a / ( 2 ∗ m)
35 Los costos para ambos grupos son:
36 i f costo suma < minimo costo :
37 minimo costo = costo suma Costo del Training set: 15000030.541667
38 minimo theta 1 = a Costo del Test set: 20760028.166667
39 minimo theta 0 = b
40 IV. C ONCLUSIONES
41 ax . s c a t t e r ( a , b , c o s t o s u m a , c= ’ r ’ , m a r k e r = ’
o ’ , s =3) Creo que la regresión linear puede considerarse una
42 costo suma = 0; predicción, siempre y cuando los datos analizados sean
43
44 ax . s c a t t e r ( m i n i m o t h e t a 1 , m i n i m o t h e t a 0 , muchos.
m i n i m o c o s t o , c= ’ b ’ , m a r k e r = ’ o ’ )
45 p r i n t ( ’ t h e t a 0 minimo e s %f , t h e t a 1 minimo e s % Si tuvieramos que predecir si un hombre comprará algo,
f y c o s t o minimo e s %f ’ %(m i n i m o t h e t a 0 ,
minimo theta 1 , minimo costo ) ) basandonos en su edad, nacionalidad y salario. El principal
46 problema que se me ocurre es que ahora la función de la
47 ax . s e t x l a b e l ( ’ T h e t a 1 ’ ) recta de la regresión lineal dependerá de tres variables, asi
48 ax . s e t y l a b e l ( ’ T h e t a 0 ’ )
49 ax . s e t z l a b e l ( ’ C o s t o ’ ) pues la gráfica estará en un plano de cuatro dimensiones. Lo
50 cual es un concepto dificil de entender.
51 p l t . show ( )
Si con una variable independiente, logramos contruir una
Cambiando los steps de los thetas a 10, el progra-
recta para hacer la predicción. Con dos variables indepen-
ma imprime el siguiente mensaje: ”theta 0 minimo es
dientes tendriamos un plano. Con tres variables independientes
25445.000000, theta 1 minimo es 9480.000000 y costo mi-
tendriamos un sólido con volumen en la cuarta dimensión.
nimo es 16150808.866667”.
III. T RABAJANDO CON EL T RAINING SET Y T EST SET
Separé los datos de la siguiente manera: Test set tiene los
datos cuyas posiciones son 5, 10, 15, 20, 25, y 30. Training
set tiene los elementos faltantes.

Modificando parte del código anterior tenemos el siguiente


mensaje: ”theta 0 minimo es 25540.000000, theta 1 minimo
es 9470.000000 y costo minimo es 15000030.541667”.

Listing 3. Hallando la regresión linear en el Training set


1 f o r i i n range ( l e n ( y e a r ) ) :
2 i f ( i + 1) % 5 != 0 :
3 cuadrado = ( a ∗ year [ i ] + b − s a l a r y [ i ] )
∗∗ 2
4
5 c o s t o s u m a += c u a d r a d o
6 m = m + 1
7 c o s t o s u m a = c o s t o s u m a / ( 2 ∗ m)

Para hallar el costo en el test set, se tiene el siguiente


fragmento de código:

Listing 4. Hallando el costo en el Test set


1 a = 9470
2 b = 25540
3 m = 0
4 f o r i i n range ( l e n ( y e a r ) ) :
5 i f ( i + 1 ) % 5 == 0 :
6 c u a d r a d o = ( a ∗ y e a r [ i ] + b − s a l a r y [ i ] ) ∗∗
2
7
8 c o s t o s u m a += c u a d r a d o

S-ar putea să vă placă și