Está en la página 1de 84

MACHINE LEARNING WITH

PYTHON

TEMA 4: Preprocesamiento
PREPROCESAMIENTO
Índice

 Introducción
 Estandarización
 Extracción de características
 Selección de características

Tema 4: Preprocesamiento
2 de 83
INTRODUCCIÓN
Definición
Subetapas más comunes

Un conjunto de patrones puede ser segmentado de diversas formas en


base a las características elegidas.
Todo problema de clasificación parte de la definición de un vector de
características X representativo de los prototipos.
La etapa de preprocesamiento incluye todas las operaciones que a
partir del vector de características original X encuentren un nuevo
vector de características X’ que mejore los resultados de clasificación.

Tema 4: Preprocesamiento
3 de 83
ESTANDARIZACIÓN
Tipos
Subetapas más comunes

Subetapas mas importantes:

 Estandarización
 Extracción de características
 Selección de características (reducción de la dimensionalidad)

Tema 4: Preprocesamiento
4 de 83
ESTANDARIZACIÓN
Tipos
Normalización

Transformar el vector de características en un nuevo vector que


contenga variables físicas independientes del proceso de medida.
(radiómetro: dependencia de la respuesta del radiómetro a la
inclinación de los rayos solares).
Transformaciones geométricas que hacen comparables entre sí
distintos elementos de la población (desplazamientos, zoom, rotación,
…)
Reescalado de los datos para que todas las características del vector de
entrada varíen dentro de un mismo rango. Muchos algoritmos de
clasificación asumen que los datos cumplen esta propiedad y es un
paso necesario para el buen funcionamiento de los mismos.

Tema 4: Preprocesamiento
5 de 83
ESTANDARIZACIÓN
Reescalado
Reescalado lineal

Lineal: Transformamos los datos para que las nuevas características


tengan media cero y varianza unidad.
xi  xi
x'i 
i

A un intervalo: Suele ser [0,1]. Para ello se resta el valor mínimo y se


divide por el valor máximo. Se suelen utilizar otros intervalos como [-
1,1].
Existen otras alternativas para casos especiales en los que se quiere
mantener la “sparsity” (muchos variables toman el valor cero) o
cuando existen muchos outliers (se mantienen los cuartiles).

Tema 4: Preprocesamiento
6 de 83
ESTANDARIZACIÓN
Ejemplo:
Reescalado Reescalado
lineal lineal

Reescalado lineal sobre el conjunto de datos iris.

.fit: Calcula los parámetros para


el preprocesamiento sobre un
conjunto de datos.
.fit_transform: Calculan los
parámetros y preprocesan un
conjunto de datos.
.transform: Preprocesan un
conjunto de datos con los
parámetros calculados
previamente en una llamada a fit
o fit_transform.

Tema 4: Preprocesamiento
7 de 83
ESTANDARIZACIÓN
Ejemplo:
Reescalado Otros
lineal tipos de reescalado

Tema 4: Preprocesamiento
8 de 83
ESTANDARIZACIÓN
Ejemplo:
Reescalado Reescalado
lineal del conjunto de test

Las operaciones de preprocesamiento se suelen primero aplicar sobre


un conjunto de entrenamiento sobre el cual además de calcular los
datos preprocesados se calculan los parámetros para el ajuste.
Posteriormente se pueden aplicar a un conjunto nuevo (test) utilizando
los parámetros calculados para el conjunto de entrenamiento. Para
ello el modelo con el que hemos ajustado los datos se suele guardar
junto con el modelo entrenado.

Tema 4: Preprocesamiento
9 de 83
ESTANDARIZACIÓN
Otras transformaciones
Reescalado lineal

Normalización: Escalado de los prototipos para que individualmente


tengan norma unidad.

Discretización: particionar una variable continua en valores discretos


que pueden ser luego convertidos a formato one-hot.

Binarización: Convertir valores continuos de una variable en boolean a


partir de un umbral.

Tema 4: Preprocesamiento
10 de 83
ESTANDARIZACIÓN
Ejemplo:
Reescalado discretización
lineal

Discretizamos la columna 0 de iris.data tomando tres bins y le


asignamos un formato categorico.

Tema 4: Preprocesamiento
11 de 83
ESTANDARIZACIÓN
Ejemplo:
Reescalado Conversión
lineal categóricas en numéricas

Transformamos iris.target en variables numéricas con formato one-


hot.

Tema 4: Preprocesamiento
12 de 83
ESTANDARIZACIÓN
Ejemplo: transform
Algoritmos de selección

Transformar el conjunto de datos iris para estudiar el siguiente


problema de clasificación.
Predecir el valor de la variable sepal length a partir de las otras tres
variables y de la clase a la que pertenece el prototipo.
La variable categórica clase la vamos a representar en formato one-
hot.
Para realizar la predicción vamos a particionar los valores de la
variable sepal length en 3 bins pequeño, mediano y grande (problema
de clasificación).

Tema 4: Preprocesamiento
13 de 83
ESTANDARIZACIÓN
Ejemplo: transform
Algoritmos de selección

Construimos la nueva matriz de características sustituyendo la


columna cero que va a ser ahora el target por las variables en formato
one-hot obtenidas en el ejemplo anterior.
El target sería y, y las categorías y_names obtenida en el ejemplo de
discretización.

Tema 4: Preprocesamiento
14 de 83
FEATURE EXTRACTION
Definición
Algoritmos de selección

La extracción de características consiste en la creación de nuevas


variables o características a partir del vector de características
original.
Este proceso está muy relacionado con el campo de aplicación de
nuestro clasificador:
 Datos genéricos: Los prototipos vienen representados por un
conjunto de datos numéricos o categóricos.
 Procesamiento de texto: Los prototipos con cadenas de texto.
 Procesamiento de imágenes: Los prototipos son imágenes.

Tema 4: Preprocesamiento
15 de 83
FEATURE EXTRACTION
Análisis
Algoritmosde texto
de selección

El análisis de texto es el mayor campo de aplicación de los


algoritmos de machine learning.
Existen herramientas para convertir las cadenas de texto de
tamaño variable en vectores numéricos de longitud fija.
Bag of words o Bag of n-grams:
 Tokenización: Trozos de texto separados por un determinado
carácter. Se les asigna un id.
 Conteo: Ocurrencia de cada token en cada documento.
 Normalización: Los tokens que se repiten en muchos de los
documentos tienen menos importancia.
Data sets con muchos ceros (sparse data)

Tema 4: Preprocesamiento
16 de 83
FEATURE EXTRACTION
Ejemplo: Análisis
Algoritmos de selección de texto

Convertir a vectores numéricos un corpus con cuatro prototipos que


podrían estar asociados a diferentes clases.
“Este es el primer documento”
“Este es el segundo documento”
“Y este es el tercero”
“Es este el primer documento?”
Una vez ajustado el modelo encontrar el vector de características del
patrón:
“Este es un documento a analizar”

Tema 4: Preprocesamiento
17 de 83
FEATURE EXTRACTION
Ejemplo: text
Algoritmos de 1 grams
selección

Utilizando n-grams de 1 elemento

Tema 4: Preprocesamiento
18 de 83
FEATURE EXTRACTION
Ejemplo: text
Algoritmos de bi grams
selección

Utilizando n-grams de 1 y 2 elementos

Tema 4: Preprocesamiento
19 de 83
FEATURE EXTRACTION
Ejemplo: text
Algoritmos de bi grams
selección

Podemos filtrar lo que se denominan stopwords en cada lenguaje


porque son palabras que no suelen aportar información.
Además podemos suprimir también los tokens que se repiten mucho o
muy poco a través de min_df o max_df.

Tema 4: Preprocesamiento
20 de 83
FEATURE EXTRACTION
Ejemplo: text
Algoritmos de pesos
selección

Se pueden utilizar algoritmos que asignan distintos pesos a los tokens


eliminando importancia a aquellas palabras que se repiten mucho.

Tema 4: Preprocesamiento
21 de 83
FEATURE EXTRACTION
Imágenes
Algoritmos de selección

El procesamiento de imágenes suele hacerse a varios niveles:


 Clasificación de la imagen completa
 Clasificación pixel a pixel basada en características locales
obtenidas de los valores del pixel o de una ventana centrada en el
mismo.
 Detección de objetos: Se puede reducir a un caso particular de
clasificación de imagen cuando la imagen es una ventana que
recorre la imagen original.

Tema 4: Preprocesamiento
22 de 83
FEATURE EXTRACTION
Imágenes:
Algoritmos de Momentos
selección espaciales

Los momentos Se aplican al análisis de formas generalmente en


imágenes binarias. Tienen en cuenta no solo el valor del pixel sino sus
coordenadas.
Aunque también dan información por si mismos se suelen utilizar
para calcular otros momentos
Para una imagen digital los momentos simples de orden p+q se
definen como:

m00   F ( j , k )
j k

1
m pq 
m00
 j k
j p k q F ( j, k )

Tema 4: Preprocesamiento
23 de 83
FEATURE EXTRACTION
Momentos espaciales
Algoritmos de selección

m00 = Representa el número de pixels de la imagen con valor igual a 1


o el área de la imagen.
m10 y m01 representan las coordenadas del centro de masas de la
imagen.
m20, m11, m02 informan de la dispersión de la imagen con respecto a
su centro de masas. Dan información sobre el eje de mínima inercia y
sobre la excentricidad.
Los momentos simples dependen de la posición, el tamaño y la
orientación de la figura en la imagen.

Tema 4: Preprocesamiento
24 de 83
FEATURE EXTRACTION
Momentos centrales
Algoritmos de selección

Son invariantes ante traslaciones

Se calculan con respecto a la posición de su centro de masas.

 pq   ( j  m10 ) p (k  m01 ) q F ( j , k )
j k

Por definición u10=u01=0

Tema 4: Preprocesamiento
25 de 83
FEATURE EXTRACTION
Momentos normalizados
Algoritmos de selección

Son invariantes ante traslaciones

Se calculan con respecto a la posición de su centro de masas.

 pq pq
n pq  
con   1 
m00 2

Son invariantes frente a cambios en el tamaño.

Tema 4: Preprocesamiento
26 de 83
FEATURE EXTRACTION
Momentos espaciales invariantes
Algoritmos de selección

Son invariantes ante traslaciones, rotaciones y cambios de tamaño de


los patrones originales (Invariantes de Hu).

1   02   20
2   20   02 2  4  11
2

3  30  312 2  3 21   03 2


4  30  12 2  21   03 2

5  30  312 30  12 30  12 2  3 21   03 2 

 3 21   03  21   03  330  12    21   03 
2 2

 
6   20   02 30  12 2   21   03 2  411 30  12  21   03 

7  3 21   03 30  12 30  12 2  3 21   03 2 

 312  30  21   03  330  12    21   03 
2 2

Tema 4: Preprocesamiento
27 de 83
FEATURE EXTRACTION
Ejemplo: Momentos
Algoritmos de selección espaciales invariantes

Son invariantes ante traslaciones, rotaciones y cambios de


tamaño de los patrones originales.
ϕ1 ϕ2 ϕ3 ϕ4 ϕ5 ϕ6 ϕ7

3.966e-01 5.196e-02 4.882e-04 5.910e-05 -2.408e-09 9.949e-06 9.743-09

2.558e-01 9.163e-03 2.882e-03 1.366e-04 8.308e-08 1.291e-05 -2.092e-08

2.554e-01 9.163e-03 2.882e-03 1.366e-04 8.308e-08 1.291e-05 -2.092e-08

2.558e-01 9.163e-03 2.882e-03 1.366e-04 8.308e-08 1.868e-05 -2.092e-08

2.507e-01 8.334e-03 2.058e-03 1.757e-04 9.860e-08 1.925e-05 3.787e-08

Tema 4: Preprocesamiento
28 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de momentos

Calculamos los momentos de Hu para los caracteres manuscritos de la


base de datos MNIST.
Hay que binarizar las imágenes.

Tema 4: Preprocesamiento
29 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de momentos

Calculo de los momentos de Hu de los tres primeros 8 y los tres


primeros 1 de la lista.

Tema 4: Preprocesamiento
30 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de momentos

Calculo de los momentos de Hu de los tres primeros 8 y los tres


primeros 1 de la lista.

Tema 4: Preprocesamiento
31 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

El principal objetivo de PCA es reemplazar el conjunto original de


variables X=(x1,...,xd) en otro X’=(x’1,...,x’m) de menor dimensión (m<d),
que guarden la mayor parte de la información (varianza) contenida en
las variables originales.
Las nuevas variables x’k son una combinación lineal de las variables
originales
La matriz de cambio de base es una matriz de dimensión (mxd) cuyas
columnas αk son los eigenvectores de la matriz de covarianza de las
variables originales.

 11 ,..,  i1 ,..,  m1 


 
X '  X  1k ,..,  ik ,..,  mk 
  ,..,  ,..,  
 1d id md 

Tema 4: Preprocesamiento
32 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

La covarianza de dos variables xi xj viene dada por:


1 1 N
S xi x j  ( xi  x i )( x j  x j )T 
N N
 (x
n 1
n
i  x i )( x nj  x j )

La matriz de covarianza es una matriz simétrica de dimensión (dxd) y


con diagonal igual a las varianzas de las variables originales.
Los autovalores λk representan la información contenida (varianza) en
cada componente principal λk=var(x’k)
Los autovectores son las componentes principales que se ordenan en
función de la información contenida, es decir, en función del valor de
los autovalores para obtener la matriz de cambio de base.
Suele ser conveniente utilizar la matriz de correlaciones para evitar
dar mayor varianza a aquellas variables de mayor magnitud.

Tema 4: Preprocesamiento
33 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

Se debe determinar el número de Componentes Principales m que se


van a conservar en el proceso de extracción de características.
Muchos criterios: Conservar un número de PCs cuya porcentaje
acumulativo de la varianza (% de la varianza total contenida en los
datos) Vm sea mayor del 80%.
Se puede aplicar a imágenes o a otros conjuntos de datos.

Tema 4: Preprocesamiento
34 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

Utilizaremos la base de datos de caracteres manuscritos NIST. En


particular las imágenes “train” del conjunto mnist de keras que
contiene 60000 números de dimensión 28*28.

x1 x2 ... xi ... x784


 0 0 ... 0.87 ... 0 
 
 
 
Matriz de prototipos:
55000x784
 
 
 
 

Tema 4: Preprocesamiento
35 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

Autovectores ordenados
por el valor del autovalor

x1 x2 ... xi ... x784 1  2 ...  i ...  784


 Sx1x1 Sx1x2 ... Sx1xi ... Sx1x784   
    Autovectores y autovalores  



  x2x1
S   
     Matriz de cambio de base

 Matriz de prototipos:  
784x784

 60000x784
  Matriz de covarianzas:
784x784
 
     
 
   
   

1  2 ...  m ...  784


 
 
 
Seleccionamos las m primeras
columnas Matriz de cambio de base
784 x m

 
 
 
 
 
Tema 4: Preprocesamiento
36 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

 
 
x'1...x'i ...x'm   x1...xi ...x784  784 xm 
 
 
Pero también al contrario (reconstrucción):
1
 
 
x1...xi ...x784   x'1...x'i ...x'm  784 xm 
 
 
Es una matriz de rotación: La inversa coincide con la traspuesta
 
 
x1...xi ...x784   x'1...x'i ...x'm  mx784 
 
 

Tema 4: Preprocesamiento
37 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

Extracción de 5 componentes:

 
 
x1...xi ...x784  784 x5  = (0.47,-1.01,-0.5,-3.74,1.06)
 
 1 2 ... 5 

Tema 4: Preprocesamiento
38 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

Reconstrucción con 5 componentes:

 
 
0.47,-1.01,-0.5,-3.74,1.06 5 x784 
 
 

Tema 4: Preprocesamiento
39 de 83
FEATURE EXTRACTION
Análisis
Algoritmosen componentes principales
de selección

Reconstrucción con más componentes:

Tema 4: Preprocesamiento
40 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de PCAs

Tema 4: Preprocesamiento
41 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de PCAs
10 primeras componentes de las 34 extraidas.
Están ordenadas por importancia.

Tema 4: Preprocesamiento
42 de 83
FEATURE EXTRACTION
Ejemplo: Reconstrucción
Algoritmos de selección con PCAs

El proceso inverso sería reconstruir un elemento a partir de sus


componentes. Para solo calcularlas una vez calculamos las 100
primeras y luego vamos poniendo a cero aquellas que no utilicemos.

Widget interactivo

Tema 4: Preprocesamiento
43 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección locales

Características que tiene un pixel en relación a su vecindad. Se


pueden utilizar distintos tamaños de ventana
Se pueden extraer usando la operación de convolución con un filtro o
kernel. Extraer bordes, esquinas, suavizado de la imagen, etc. La
aplicación de cada filtro daría lugar a una nueva imagen que se puede
utilizar como característica.
También se pueden extraer medidas de amplitud o textura:
Amplitud:
 Primer orden: media, desviación típica, skewness, kurtosis, energía.
 segundo orden autocorrelación, covarianza, inercia, valor absoluto,
diferencia inversa, energía y entropía.
Textura: Matriz de coocurrencia de niveles de gríses (GLCM), PCA,
WAVELETS, Haar, Hog, …

Tema 4: Preprocesamiento
44 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud primer orden

Consisten en calcular ciertos estadísticos sobre una ventana de


vecindad centrada en el pixel (j,k).
 Media:
1 w w
M ( j, k )   
2w  1 m w n w
F ( j  m, k  n)

Mediana: Se ordenan todos los pixels de la vencindad en un array de


mayor a menor y se coge el valor de la posición central del array.
 Desviación estandar:

1/ 2
1  w w 2
S ( j, k )  
2w  1  m   w n   w
( F ( j  m, k  n )  M ( j , k )) 

Tema 4: Preprocesamiento
45 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud primer orden

Se pueden calcular utilizando el histograma sobre la ventana de


vecindad centrada en el pixel (j,k).
Dicho histograma se define como:

N (b)
P(b)  0  b  L 1
M

donde M es el número de pixels en la ventana de vecindad y N(b) es el


número de pixels cuya amplitud se corresponde con el nivel de gris b
de la imagen.

Tema 4: Preprocesamiento
46 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud primer orden

La forma de un histograma da muchas pistas sobre las características


de una imagen
Un histograma estrecho indica una imagen de bajo contraste
Un histograma bimodal sugiere que la imagen contiene un objeto con
un rango de niveles de grises en un fondo de amplitud diferente.
Calcularemos estadísticos que dan una idea de las características del
histograma:
Desviación estandar: Mide la dispersión con respecto a la media
Skewness: Mide la asimetría
Kurtosis: Mide la forma

Tema 4: Preprocesamiento
47 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud primer orden

_ L 1
Media: S M  b   bP(b)
b 0

1/ 2
 L 1 _

Desviación estandar: S D   b   (b  b) 2 P(b)
 b 0 

L 1
1 _
Skewness: SS   (b  b) 3
P (b)

3
b 0
b

Tema 4: Preprocesamiento
48 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud primer orden

L 1
Kurtosis: 1 _

3
SK  (b  b ) 4
P (b)  3
 b
b 0

L 1
Energy: S N   P(b)
2

b 0

L 1
Entropy: S E   P(b) log 2 P(b)
b 0

Histogram mode: Amplitud del pixel correspondiente al pico del


histograma. Si no es único se utiliza el más cercano al valor medio.
Tema 4: Preprocesamiento
49 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud primer orden

Calculo de características de amplitud para el pixel j=3,k=3 de la


imagen para una ventana de radio 1.

2 1 3 1 2
L=3, W=1 N(b)= 2 5 2
1 2 2 3 1 p(b) = 0.22, 0.55, 0.22
3 3 1 2 3 b= 1 2 3

1 2 2 1 1
2 1 3 2 2

SM=2 SD=0.67 SS=0 SK=-0.75 SN=0.41 SE=1.44


Mode=2 Mediana= 2

Tema 4: Preprocesamiento
50 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud primer orden

Calculo de características de amplitud para el pixel j=3,k=3 de la


imagen para una ventana de radio 2.

2
2 1
1 3
3 1
1 2
2 L=3, W=2 N(b)= 9 10 6
1
1 2
2 2
2 3
3 1
1 p(b) = 0.36, 0.40, 0.24
b= 1 2 3
3
3 3
3 1
1 2
2 3
3
1
1 2
2 2
2 1
1 1
1
SM=1.88 SD=0.76 SS=0.20 SK=-1.26 SN=0.34 SE=1.55
2
2 1
1 3
3 2
2 2
2 Mode=2 Mediana= 2

Tema 4: Preprocesamiento
51 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud segundo orden

Se calculan utilizando el histograma de la distribución de probabilidad


conjunta de dos pares de pixels sobre la ventana de vecindad centrada
en el pixel (j,k).
Dicho histograma se define como:

N ( a, b)
P ( a, b) 
M

donde M es el número de pixels en la ventana de vecindad y N(a,b) es


el número de ocurrencias de los niveles de grises a y b de la imagen.

Tema 4: Preprocesamiento
52 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud segundo orden

A partir de dicho histograma se pueden calcular los siguientes


estadísticos:

L 1 L 1
Autocorrelation S A   abP(a, b)
a 0 b 0

Covarianza L 1 L 1 _ _
S C   (a  a )(b  b) P(a, b)
a 0 b 0

_ L 1 L 1
a   aP(a, b)
a 0 b 0

_ L 1 L 1
b   bP (a, b)
a 0 b 0

Tema 4: Preprocesamiento
53 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud segundo orden

L 1 L 1
Inercia S I   a  b P(a, b)
2

a 0 b 0

L 1 L 1

 Valor absoluto SV   a  b P (a, b)


a 0 b 0

L 1 L 1
P ( a, b)
 Diferencia inversa S F  
a  0 b  0 1  a  b 
2

Tema 4: Preprocesamiento
54 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud segundo orden

L 1 L 1
Energía S G   P(a, b)
2

a 0 b 0

L 1 L 1
Entropía ST   P(a, b) log 2 P(a, b)
a 0 b 0

Tema 4: Preprocesamiento
55 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud segundo orden

Calculo de características de amplitud de 2 orden para el pixel j=3,k=3


de la imagen.

L=3, W=1
2 1 3 1 2 N(a,b) 1 2 3

1 2 2 3 1 1 4 10 4
2 10 25 10
3 3 1 2 3
3 4 10 4
1 2 2 1 1
2 1 3 2 2
P(a,b) 1 2 3
1 0.049 0.123 0.049
2 0.123 0.309 0.123
3 0.049 0.123 0.049

SA= 4 SC=0 SI=0.89 SV=0.69 SF=0.67 SG=0.17 ST=1.99

Tema 4: Preprocesamiento
56 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud segundo orden

Calculo de características de amplitud de 2 orden para el pixel j=3,k=3


de la imagen.

L=3, W=2 N(a,b) 1 2 3


2 1 3 1 2
1 81 90 54
1 2 2 3 1
2 90 100 60
3 3 1 2 3
3 54 60 36
1 2 2 1 1
2 1 3 2 2
P(a,b) 1 2 3
1 0.130 0.144 0.086
2 0.144 0.160 0.096
3 0.086 0.096 0.058

SA=3.53 SC=0 SI=1.17 SV=0.83 SF=0.62 SG=0.12 ST=2.15

Tema 4: Preprocesamiento
57 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de Amplitud

Las características de amplitud permiten obtener un conjunto de


características representativas del pixel de la imagen. Se obtiene un
conjunto de 8 características de 1 orden y 7 de 2 orden para cada radio
W elegido.
Las características de amplitud solo dependen de los valores de los
pixeles en una ventana no de su ubicación.
Los parámetros de amplitud para todas estas regiones serían iguales.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0
0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1
0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

Tema 4: Preprocesamiento
58 de 83
FEATURE EXTRACTION
Características
Algoritmos de selección de textura

El análisis de textura intenta cuantificar cualidades intuitivas de la


imagen definidas por términos como: aspereza, suavidad, sedoso,
rugosidad, como una función de las variaciones espaciales en las
intensidades de los pixels. Hablamos de una textura cuando algún
orden local se repite sobre una región grande en comparación con el
tamaño del orden.
La segmentación de imágenes basada en texturas es fundamental en
campos como el análisis de imágenes médicas, remote sensing, etc.

Tema 4: Preprocesamiento
59 de 83
FEATURE EXTRACTION
Gray Level
Algoritmos Co-occurrence Matrixes (GLCM)
de selección

Es un descriptor de texturas que se obtiene calculando el histograma


bidimensional de las coincidencias de los valores de grises en una
ventana de la imagen.

N (a, b, r ,  )
P(a, b, r ,  ) 
M
M es el número de pixels en la ventana de vecindad y N(a,b) es el
número de ocurrencias de los niveles de grises a y b de la imagen en
pixels separados una distancia r y un ángulo.
Para cada (r,θ) se calcula un histograma de dimensión LxL.
Suele ser común utilizar angulos de 0, 45, 90 y 135, L=16.
Del histograma se extraen una serie de estadísticos que
conformarán el vector de características.

Tema 4: Preprocesamiento
60 de 83
FEATURE EXTRACTION
Gray Level
Algoritmos Co-occurrence Matrixes (GLCM)
de selección

Ejemplo:

b\a 0 1 2 3 b\a 0 1 2 3
0 0 1 1
0 3 0 2 0 0 6 0 2 0
0 0 1 1
1 0 2 0 0 1 0 4 2 0
0 2 2 2
2 0 0 1 2 2 2 2 2 2
2 2 3 3
3 0 0 0 0 3 0 0 2 0
Imagen ejemplo N(a,b,1,90) N(a,b,1,90)+t(N(a,b,1,90))
L=4

Normalización: P(a,b,1,90) = (N(a,b,1,90)+t(N(a,b,1,90)))/(2*12)

b\a 0 1 2 3
Contraste:
0 0.250 0 0.083 0
L 1 L 1
1 0 0.0167 0.083 0 T (r ,  )   (a  b) 2 P (a, b, r ,  )
2 0.083 0.083 0.083 0.083 a 0 b 0
3 0 0 0.083 0 T(1,90)=(-1)2*0+(-2)2*0.083+(-3)2*0+·····=1.000
P(a,b,1,90) Medida del contraste vertical

Tema 4: Preprocesamiento
61 de 83
FEATURE EXTRACTION
Gray Level
Algoritmos Co-occurrence Matrixes (GLCM)
de selección

Calculo en varias direcciones:

T(1,0) = 0.583 Contraste horizontal


T(1,45) = 1.778 Contraste diagonal1
T(1,90)= 1.000 Contraste vertical
T(1,135)= 0.444 Contraste diagonal2

A partir de estos valores se definen unos valores invariantes a


rotaciones de la imagen.
1
M T (r )   T (r , )
N 
M(1) = 0.951
VT (r ) 
1
 T (r, )  M T
(r ) 
2
V(1) = 0.269
N  S(1) = 1.334
ST (r )  MAX T (r ,  )  MIN T (r ,  )
 

Tema 4: Preprocesamiento
62 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de las características GLCM

Calculo de parámetros a partir de las matrices GLCM para radio 1.

Tema 4: Preprocesamiento
63 de 83
FEATURE EXTRACTION
Local Binary
Algoritmos Patterns (LBP)
de selección

Es un descriptor de texturas que se suele utilizar en detección de


objetos.
Se compara el valor del pixel con los p vecinos separados un radio r.

Si el valor del vecino es mayor o igual que el central 1 y 0 en caso


contrario.

Tema 4: Preprocesamiento
64 de 83
FEATURE EXTRACTION
Local Binary
Algoritmos Patterns (LBP)
de selección

Para cada pixel se obtiene un número binario de p bits (decimal entre


0 y 2p). La sustitución de este número por el valor del pixel
correspondiente da lugar a una nueva image.
Con los valores del LBP se construye un histograma que normalizado
(dividir por el número de pixels de la imagen) será el vector de
características de la imagen.
Son invariantes ante cambios monotónicos en el nivel de gris y ante
traslaciones (histograma).

Tema 4: Preprocesamiento
65 de 83
FEATURE EXTRACTION
LBP Uniforme
Algoritmos de selección

Elimina gran parte de las transiciones para reducir la dimensión del


vector de características.
Solo se les asigna código a los patrones con transiciones 1 a 0 o 0 a 1
menor o igual que dos. A los demás se les asigna el mismo código.
Reducimos de n=2p posibilidades a n=(p*(p-1)+2)+1. En el caso de p=8
de n=256 a n=59.
Invariantes a rotaciones pasamos a (p+1)+1. Para p=8 n=10.

Tema 4: Preprocesamiento
66 de 83
FEATURE EXTRACTION
Ejemplo: Calculos
Algoritmos de selección de las características LBP

Calculo del histograma LBP uniforme invariante a rotaciones de radio


3 con 24 puntos. El histograma tendrá 26 (24+1+1) bins.

Tema 4: Preprocesamiento
67 de 83
FEATURE EXTRACTION
Ejemplo: Calculos
Algoritmos de selección de las características LBP

Vector de características de dimensión 26 obtenido con LBP

Tema 4: Preprocesamiento
68 de 83
FEATURE EXTRACTION
LBPU porde bloques
Algoritmos selección (detección de objetos)

Coursera: Detección de objetos. Universidad Autónoma de Barcelona.

Tema 4: Preprocesamiento
69 de 83
FEATURE EXTRACTION
LBPU porde bloques
Algoritmos selección (detección de objetos)

En la detección de objetos se suelen calcular los descriptores en


regiones con una dimensión relativa al objeto buscado (ventana
canónica).
La ventana de búsqueda se suele dividir en N bloques. En cada una de
ellas se calcula el histograma del LBP y la unión de todos los
histogramas da lugar al nuevo vector de características de dimensión
N*(p+1+1).
Se pueden tener bloques solapados dando lugar a cierta redundancia
pero ganando en robustez.
Existen métodos eficientes para calcularlos de forma más rápida.
Dan lugar a un vector de características de muchas dimensiones.

Tema 4: Preprocesamiento
70 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de los LBPU por bloques

Calculo del histograma LBP uniforme de radio 3 con 24 puntos para


una imagen de 64x64 con bloques de 16x16 y salto 8.
Da lugar a 7x7=49 bloques de 16 pixeles. Si en cada bloque tenemos 26
bins al unirlos nos dan 1274 características.

Tema 4: Preprocesamiento
71 de 83
FEATURE EXTRACTION
Histogram of gradients (HOG)
Algoritmos de selección

Utiliza la información del gradiente en las direcciones x e y en cada


pixel de la imagen. Aplicando filtros del tipo -1 0 1 en las direcciones x
e y obtenemos dx y dy para cada pixel. De dx y dy obtenemos el
módulo y la dirección del gradiente para cada pixel.
La ventana se divide en celdas en las que se calcula el histograma de
los gradientes de orientación dividiendo en intervalos el rango de 0-
180. En el histograma se suman las magnitudes de todos los
gradientes asignados a dicho intervalo.
Las celdas se agrupan en bloques que pueden solaparse cuyo
histograma se obtiene uniendo los histogramas de todas las celdas del
bloque.
Para imágenes en color se utiliza el canal que presenta mayor
magnitud en el gradiente.

Tema 4: Preprocesamiento
72 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de las características de HOG

Calculo de las características de HOG para una imagen de 64x64 con


celdas de 8x8 y 4 celdas por bloque. 9 orientaciones para los
histogramas.

Tema 4: Preprocesamiento
73 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de las características de HOG

Da lugar a 8x8=64 celdas. Con estas celdas se pueden coger 5x5


bloques. Cada bloque tiene 4x4 celdas con un histograma de 9 bins.
Numero de características: 5x5x4x4x9=3600

64 celdas de 8x8

Bloque 1 de 25 Bloque 2 de 25

Tema 4: Preprocesamiento
74 de 83
FEATURE EXTRACTION
Filtros dedeHaar
Algoritmos selección

Se obtienen aplicando un determinado número de filtros (convolución)


a diferentes escalas a lo largo de toda la imagen.

Type 2-x, 2-y, 3-x, 3-y, 4

Las zonas negras multiplican por 1 los valores de la imagen y las


blancas por -1.
A baja escala son características parecidas a las obtenidas con el
calculo del gradiente (HOG)

Tema 4: Preprocesamiento
75 de 83
FEATURE EXTRACTION
Filtros dedeHaar
Algoritmos selección

Cada filtro se aplica en todas las escalas posibles en cada imagen tanto
en horizontal como en vertical dando lugar a un vector de
características de muchas dimensiones.

28 veces 20 veces 12 veces 4 veces

21 veces 15 veces 9 veces 3 veces

14 veces 10 veces 6 veces 2 veces

7 veces 5 veces 3 veces 1 vez

Tema 4: Preprocesamiento
76 de 83
FEATURE EXTRACTION
Filtros dedeHaar
Algoritmos selección

160 características sólo para este filtro en una imagen de 4x8.


Si aplicamos cada uno de los filtros para una imagen de 24x24 se
obtienen 162336 características.
Para acelerar el calculo se recurre al concepto de imagen integral que
se calcula antes de calcular las características de Haar.
La dimensionalidad del vector de características es tan grande que
obliga a usar algoritmos de clasificación especiales como los
clasificadores en cascada.

Tema 4: Preprocesamiento
77 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de las características de Haar

La librería tiene un error. No se calculan todos las características.


Para una imagen de 4x8 solo extrae 144 características en lugar de las
160.

Tema 4: Preprocesamiento
78 de 83
FEATURE EXTRACTION
Ejemplo: Calculo
Algoritmos de selección de las características de Haar

La librería tiene un error. No se calculan todos las características.


Para una imagen de 24x24 con los 5 filtros extrae 161864 en lugar de
162336.

Tema 4: Preprocesamiento
79 de 83
FEATURE SELECTION
TheSelección
curse of the dimensionality
de características

Aunque la separabilidad de los datos aumenta cuanto mayor es la


dimensión del vector de entrada. Desde el punto de vista práctico:
 Un vector de característica de muchas componentes obliga al uso
de sistemas de clasificación con muchos grados de libertad con el
correspondiente incremento en los requisitos de los sistemas de
simulación o implementación en cuanto a tiempos de ejecución y
capacidad de almacenamiento.
 Un vector de característica de muchas componentes obliga a que el
número de patrones del conjunto de entrenamiento sea muy grande
es lo que se denomina the curse of dimensionality.

Tema 4: Preprocesamiento
80 de 83
FEATURE SELECTION
Definición
Algoritmos de y tipos
selección

Seleccionar un subconjunto del vector de características original que


mejor resuelve el problema de clasificación.
Los algoritmos de selección se clasifican en función de si necesitan o no
el sistema de clasificación para su operación:

 Supervisados: Tratan de encontrar un subconjunto que mejora los


resultados de clasificación. Suelen ser costosos
computacionalmente.

 No supervisados: No hacen uso del clasificador aunque algunos, si


se hacen uso del etiquetado de los prototipos.

Tema 4: Preprocesamiento
81 de 83
FEATURE SELECTION
Algoritmos de selección supervisados
Algoritmos de selección

Exponenciales: Exploran todas las posibilidades 2d. Aseguran


encontrar el subconjunto optimo de características. Son prohibitivos
incluso cuando se fija el número de componentes m del vector de
entradas. En este caso el número de subconjuntos es:

d!
(d  m)! m!
El algoritmo branch and bound permite acelerar la búsqueda
descartando algunos subconjuntos.

Secuenciales: BSS y FSS

Aleatorios: Algoritmos genéticos


Tema 4: Preprocesamiento
82 de 83
FEATURE SELECTION
Algoritmos de selección no supervisados
Algoritmos de selección

Análisis en componentes principales: A partir del análisis en


componentes principales en lugar de quedarnos con los primeras
componentes X’ (feature extraction), nos quedamos con aquellas
variables que mas peso tienen en el cálculo de las mismas.
Eliminar características con poca varianza.
sklearn.feature_selection.VarianceThreshold
Eliminar características basadas en otros tests estadísticos que tienen
en cuenta la etiqueta del prototipo.
SelectKBest, SelectPercentile, GenericUnivariate-Select

Tema 4: Preprocesamiento
83 de 83
FEATURE SELECTION
Ejemplo
Algoritmosde algoritmo de selección
de selección

Selecciona las dos variables del vector de características para


clasificación de los datos del conjunto iris.

Tema 4: Preprocesamiento
84 de 83

También podría gustarte