Regresión Lineal - Minería de datos con python
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
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