Regresión Lineal - Minería de datos con python

Post on 11-Feb-2017

237 views 6 download

Transcript of Regresión Lineal - Minería de datos con python

Regresion Lineal

Minerıa de datos con python

Miguel Cardenas Montes

Centro de Investigaciones Energeticas Medioambientales y Tecnologicas,Madrid, Spain

miguel.cardenas@ciemat.es

2-6 de Noviembre de 2015

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 1 / 31

Tabla de Contenidos

1 Objetivos

2 Introduccion

3 Ejemplo Numerico

4 Sobreajuste en Regresion

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 2 / 31

Objetivos

Conocer la tecnica de regresion lineal.

Conocer la tecnica de regresion polinomica.

Aspectos Tecnicos

Regresion Lineal, y Regresion Polinomica.

Sobreajuste

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 3 / 31

Introduccion

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 4 / 31

Regresion Lineal I

La tecnica de regresion lineal es una de las mas populares en minerıade datos y en cualquier disciplina cientıfica. Incluso mas alla de laminerıa de datos.

Sin embargo es suficientemente sencilla para introducir otrosconceptos.

Tiene puntos en comun con otros algoritmos mas complicados.

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 5 / 31

Regresion Lineal II

¿Cual es la recta que mejor se ajusta a estos puntos?

0 1 2 3 4 5X

0

1

2

3

4

5Y

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 6 / 31

Regresion Lineal III

Esta recta tiene apariencia de ajustar mal.

0 1 2 3 4 5X

0

1

2

3

4

5Y

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 7 / 31

Regresion Lineal IV

Esta recta produce el ajuste optimo.¿Como se puede automatizar la busqueda de este optimo,hθ(x) = θ0 + θ1 · x?

0 1 2 3 4 5X

0

1

2

3

4

5

Y

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 8 / 31

Regresion Lineal V

El objetivo es optimizar hθ(x) = θ0 + θ1 · x , y por lo tanto los valoresde θ0 y θ1.

Para este proposito se puede componer una funcion de coste, cuyomınimo permite obtener los valores optimos de θ0 y θ1.

Funcion de coste J(θ0, θ1) =12m

∑puntos(hθ(x

i )− y i )2, donde m es elnumero de puntos.

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 9 / 31

Regresion Lineal VI

Como minimizar la funcion de costeJ(θ0, θ1) =

12m

∑puntos(hθ(x

i )− y i )2.

Exiten multiples metodos para minimizar cualquier funcion:montecarlo, algoritmos evolutivos, gradiente descendiente, etc.

Muchos algoritmos de minerıa de datos tienen una funcion de costefacilmente reconocible y cuyo mınimo en muchos casos puedecalcularse con metodos analıticos. Por ejemplo, kmeans, SVM,regresion logıstica, etc.

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 10 / 31

Regresion Lineal VII

Si los datos tienen una dimensionalidad mas alta (mas atributos) sepuede ampliar la hipotesis al resto de variabbles,hθ(x) = θT x = θ0x0 + θ1x1 + · · ·+ θnxn.

Ası la funcion de coste es: J(θ0, θ1, . . . , θn) =12m

∑mi=1(hθ(x

i )− y i )2.

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 11 / 31

Regresion Lineal VIII

O por el contrario se puede utilizar un polinomio de mayor grado:hθ(x) = θT x = θ0 + θ1x + θ2x

2.

La funcion de coste J se contruye de forma equivalenteJ = 1

2m

∑mi=1(hθ(x

i )− y i )2.

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 12 / 31

Regresion Lineal IX

¿Cual es el mejor ajuste? ¿La que de el mınimo mas bajo en lafuncion de coste?

¿Que pasa si se aumenta el grado del polinomio?

0 1 2 3 4 5X

0

1

2

3

4

5

Y

0 1 2 3 4 5X

0

1

2

3

4

5

Y

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 13 / 31

Regresion Lineal X

A medida que se aumenta el grado del polinomio el valor mınimo dela funcion de coste desciende.

Para grados elevados el mınimo es cero, ya que el polinomio pasarapor todos los puntos.

¿Es esto adecuado?

¿Como varıa la capacidad de prediccion de nuevos valores a medidaque se aumenta el grado del polinomio?

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 14 / 31

Regresion Lineal XI

Hay una tendencia hacia el uso de datos no ”idealizados”: sucios,ruidosos, con incertidumbres, altamente dimensionales (maldicion dela dimensionalidad).

¿Como se pueden manejar estos datos?

−1 0 1 2 3 4 5 6 7 8X

0

2

4

6

8

10

Y

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 15 / 31

Ejemplo Numerico: python

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 16 / 31

Regresion Lineal XII

import numpy as np

import pylab as pl

from sklearn import datasets, linear_model

import random

# Datos

x1=[[0.4],[1.1],[2.1],[2.9],[3.1],[4.2],[4.5]]

y1=[0.6,1.0,1.9,3.2,3.0,4.1,4.4]

# Create linear regression object

regr = linear_model.LinearRegression()

# Train the model using the training sets

regr.fit(x1,y1)

# The coefficients

print(’Coefficients: \n’, regr.coef_, regr.intercept_)

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 17 / 31

Regresion Lineal XIII

pl.figure(1)

pl.plot(x1, regr.predict(x1), color=’black’, linewidth=3)

pl.scatter(x1, y1, s=40, marker=’o’, color=’k’)

pl.xlabel(’X’)

pl.ylabel(’Y’)

pl.xlim(.0, 5.0)

pl.ylim(.0, 5.0)

pl.show()

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 18 / 31

Ejemplo Numerico: R

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 19 / 31

Regresion Lineal XIII

# valores eje x

x1<-c(0.4,1.1,2.1,2.9,3.1,4.2,4.5)

# valores eje y

y1<-c(0.6,1.0,1.9,3.2,3.0,4.1,4.4)

# ajuste por regresion lineal de las dos variables

fit1 <- lm(y1 ~ x1)

# valores del ajuste

fit1

fit1$coefficients

# nuevos valores de x para hacer la prediccion

xnew<- seq(0,5,length.out=100)

# plot

plot(y1~ x1)

lines(xnew,predict(fit1,data.frame(x1=xnew)),col="blue",lty = 2)

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 20 / 31

Regresion Lineal XIV

1 2 3 4

12

34

x1

y1

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 21 / 31

Regresion No Lineal XV

# valores eje x

x1<-c(0.4,1.1,2.1,2.9,3.1,4.2,4.5)

# valores eje y

y1<-c(0.6,1.0,1.9,3.2,3.0,4.1,4.4)

# ajuste por regresion lineal de las dos variables

fit3 <- lm(y1 ~ poly(x1,3))

# valores del ajuste

fit3

fit3$coefficients

# nuevos valores de x para hacer la prediccion

xnew<- seq(0,5,length.out=100)

# plot

plot(y1~ x1)

lines(xnew,predict(fit3,data.frame(x1=xnew)),col="blue",lty = 2)

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 22 / 31

Regresion Lineal XVI

1 2 3 4

12

34

x1

y1

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 23 / 31

Sobreajuste en Regresion

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 24 / 31

Sobreajuste I

El problema asociado asobreajustar el modelo(aprendizaje supervisado) a unconjunto particular de datos,produce una reduccion de lacapacidad de prediccion delmodelo y de su calidad.

0 2 4 6 80

24

68

1012

x

y

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 25 / 31

Sobreajuste II

x=c(0.3,0.4,1.0,1.1,1.4,2.0,2.1,2.9,3.1,3.4,

4.0,4.1,4.2,4.5,5.0,5.7,6.0,6.2,6.5,6.6)

y=c(1.6,1.3,0.9,0.8, 0.6, 1.1,1.7,1.2,2.5,

3.2,3.0,3.3,4.1,4.9,6.4,8.2,8.6,8.9,9.1,9.4)

plot(x,y, xlim=c(0,8), ylim=c(-1,12))

fit1 <- lm( y~x )

fit2 <- lm( y~poly(x,2) )

fit3 <- lm( y~poly(x,3) )

fit9 <- lm( y~poly(x,9) )

xx <- seq(0,11, length.out=250)

lines(xx, predict(fit1, data.frame(x=xx)), col=’green’)

lines(xx, predict(fit2, data.frame(x=xx)), col=’blue’)

lines(xx, predict(fit3, data.frame(x=xx)), col=’red’)

lines(xx, predict(fit9, data.frame(x=xx)), col=’black’)

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 26 / 31

Sobreajuste III

> sum((fit1$residuals)^2)

[1] 25.25412

> sum((fit2$residuals)^2)

[1] 4.704565

> sum((fit3$residuals)^2)

[1] 3.307735

> sum((fit9$residuals)^2)

[1] 1.889394

A medida que se aumenta el grado delpolinomio desciende el error (suma delos residuos al cuadrado).

¿Si se aumenta el grado del polinomiomejoramos la representacion de losdatos de entrenamiento? (Sı, No)

¿Si se aumenta el grado del polinomiomejoramos la capacidad de prediccionsobre nuevos datos? (Sı, No)

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 27 / 31

Sobreajuste IV

0 2 4 6 8

02

46

810

12

x

y

¿Si se aumenta el grado delpolinomio mejoramos larepresentacion de los datos deentrenamiento? (Sı, No)

¿Si se aumenta el grado delpolinomio mejoramos lacapacidad de prediccion sobrenuevos datos? (Sı, No)

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 28 / 31

Sobreajuste V

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 29 / 31

Material Adicional

Documentos de: regresion lineal, tratamiento de regresion lineal con datoscon incertidumbre, que es el sobreajuste, como evitarlo (regularizacion),aplicacion de analisis de componentes principales para reducir el numerode atributos (dimensionalidad) del problema.

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 30 / 31

Gracias

Gracias

¿Preguntas?

¿Mas preguntas?

M. Cardenas (CIEMAT) Regresion Lineal 2-6 de Noviembre de 2015 31 / 31