Se presenta el algoritmo de W.D. Fisher para la clasificación óptima en una variable. Es muy útil para la discretización de variables cuantitativas pues encuentra una partición óptima de la variable en k clases. Es muy superior a discretizar por medio de histogramas, cuartiles o usando k-medias.
Ensayo ENRICH (sesión clínica, Servicio de Neurología HUCA)
Clasificación óptima: algoritmo de Fisher
1. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Algoritmo de Fisher para Clasificación Óptima
Javier Trejos
Escuela de Matemática – CIMPA
Universidad de Costa Rica
II ciclo 2020
3. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clasificación Automática para una Variable
Introducción
Situación: se tiene un grupo de n individuos descriptos
por una variable cuantitativa o cualitativa ordinal.
Objetivo: particionar los individuos en K clases,
cumpliendo:
4. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clasificación Automática para una Variable
Introducción
Situación: se tiene un grupo de n individuos descriptos
por una variable cuantitativa o cualitativa ordinal.
Objetivo: particionar los individuos en K clases,
cumpliendo:
Máxima homogeneidad dentro de las clases.
5. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clasificación Automática para una Variable
Introducción
Situación: se tiene un grupo de n individuos descriptos
por una variable cuantitativa o cualitativa ordinal.
Objetivo: particionar los individuos en K clases,
cumpliendo:
Máxima homogeneidad dentro de las clases.
Máxima separación entre las clases.
6. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clasificación Automática para una Variable
Introducción
Situación: se tiene un grupo de n individuos descriptos
por una variable cuantitativa o cualitativa ordinal.
Objetivo: particionar los individuos en K clases,
cumpliendo:
Máxima homogeneidad dentro de las clases.
Máxima separación entre las clases.
7. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Principios
Método de W.D. Fisher: está basado en el principio de
optimalidad de Bellman usado en Programación Dinámica.
Se trata de construir iterativamente particiones con un
número de clases igual al ı́ndice de la iteración actual, y
que empiecen en los distintos objetos a clasifica.
Se escoge de manera óptima el punto de corte de la nueva
clase que se agrega a una partición existente.
8. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Notación
Se tiene una variable cuantitativa o cualitativa ordinal x,
medida u observada sobre n objetos de un conjunto Ω.
Supondremos, para simplificar, que los valores de x son
todos distintos, por lo que se dispone de n números reales:
x1 < x2 < · · · < xn
que eventualmente pueden estar ponderados por pesos ωi.
Se busca una partición P = (C1, C2, . . . , CK) de Ω en K
clases, tales que la varianza intra-clases
W(P) =
K
X
k=1
X
i ∈ Ckωi(xi − gk)2
=
K
X
k=1
I(Ck) (1)
sea mı́nima, donde gk =
P
i∈Ck
ωixi es el promedio de x
sobre los elementos de la clase Ck.
9. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Idea del método
El algoritmo calcula, en la iteración k, una serie de
particiones Pi
k en k clases del conjunto {i, i + 1, . . . , n}.
Se prueba que estas particiones deben tener elementos
consecutivos para ser optimales: no pueden intercalarse
elementos de otras clases entre dos elementos de una
misma clase.
El algoritmo finaliza con la partición P1
k de Ω en k clases,
que es la partición óptima buscada.
10. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Algoritmo
Algoritmo de Fisher
Entrada: xi, ωi
1. Sea Pi
1 = {i, i + 1, . . . , n} para todo i = 1, . . . , n
k. Para k = 2, . . . , K − 1 hacer:
determinar Pi
l = ({i, . . . , j}, Pj+1
l−1 ) de {i, . . . , n} en k
clases,
con j ∈ {i, . . . , n − k + 1} que minimiza
I({i, . . . , j}) + W(Pj+1
k−1 )
K. Construir P1
k = ({1, . . . , i}, Pi+1
K−1) que minimiza
I({1, . . . , j}) + W(Pj+1
k−1 )
11. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Optimalidad
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
k, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: Supóngase por contradicción que existen
clases C, C′ ∈ P∗ tales que i, j ∈ C, h ∈ C′ y xi < xh < xj.
Sean g, g′ los promedios de C y C′, respectivamente. Entonces
se cumple una de tres posibilidades:
|xh − g′
| ≥ |xh − g| ≥ 0 (2)
|xi − g| ≥ |xi − g′
| ≥ 0 (3)
|xj − g| ≥ |xj − g′
| ≥ 0 (4)
12. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Optimalidad
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
K tal que xi < xh < xj.
Demostración: (Cont.) En efecto, si g ≤ g′:
Si g ≥ xh entonces (2).
Si xh < g < g′ < xj entonces (4).
Si g ≤ xh < xj ≤ g′, entonces
en caso de tener |xj − g| ≥ |xj − g′
| se tiene (4);
si no
|xh − g| ≤ |xh − xj| + |xj − g| < |xh − xj| + |xj − g′
| =
xj − xh − g′
− xj = g′
− xh = |xh − g′
|,
de donde se tiene (2).
13. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Optimalidad
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
k, entonces no
existe ningún objeto xh ∈ Ω − C∗
K tal que xi < xh < xj.
Demostración: (Cont.) Sg > g′:
Si g′ < g ≤ xh entonces (2).
Si xi < g′ < g entonces se cumple (3).
si |xh − g′| ≥ |xh − g| entonces se cumple (2),
de lo contrario se cumple |xi − g′| ≤ |xi − xh| + |xh − g′| <
|xi − xh| + |xh − g| = xh − xi + g − xh = g − xi = |xi − g|,
de donde se cumple (3).
14. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Optimalidad
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.) Lo anterior significa que hay uno de
los tres puntos que está más alejado del centro de su clase que
del centro de la otra clase. Sea a ese punto y sea C1 la clase a
la que pertenece, con centro g1, y sea C2 la otra clase con
centro g2.
15. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Optimalidad
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.) Examinemos ahora el valor del
criterio, poniendo µk =
P
i∈Ck
ωi.
W(P∗
) =
K
X
k=1
X
i∈Ck
ωi(xi − gk)2
=
K
X
k=1
X
i∈Ck
ωix2
i − 2
K
X
k=1
X
i∈Ck
ωixigk +
K
X
k=1
µkg2
k
=
n
X
i=1
ωix2
i −
K
X
k=1
µkg2
k
16. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.) Consideremos la partición “natural”
Π = (D1, . . . , DK) con
D1 = C1 − {a} (con centro γ1),
D2 = C2 ∪ {a} (con centro γ2), y
D3 = C3, . . . , ]itemDk = CK.
17. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.) Consideremos la partición “natural”
Π = (D1, . . . , DK) con
D1 = C1 − {a} (con centro γ1),
D2 = C2 ∪ {a} (con centro γ2), y
D3 = C3, . . . , ]itemDk = CK.
Es claro que γ1 = 1
µ1−1(µ1g1 − a), y γ2 = 1
µ2+1(µ2g2 + a).
Luego W(Π) =
Pn
i=1 ωix2
i − γ2
1(|C1| − 1) − γ2
2(|C2| + 1) − R.
18. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.) Por lo tanto
W(P∗) − W(Π) =
= γ2
1(|C1| − 1) + γ2
2(|C2| + 1) − µ1g2
1µ2g2
2
=
(µ1g1 − a)2
µ1 − 1
+
(µ2g2 + a)2
µ2 + 1
− µ1g2
1 − µ2g2
2
a2 − 2aµ1g1 + µ1g2
1
µ1 − 1
+
a2 + 2aµ2g2 + µ2g2
2
µ2 + 1
=
µ1
µ1 − 1
[a − g1]2
−
µ2
µ2 + 1
[a − g2]2
19. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.) pues
µ1a2
µ1 − 1
−
µ2a2
µ2 + 1
=
µ1a2(µ2 + 1) − µ2a2(µ1 − 1)
(µ1 − 1)(µ2 + 1)
=
a2µ1 + µ2a2
(µ1 − 1)(µ2 + 1)
y
a2
µ1 − 1
+
a2
µ2 + 1
=
a2µ2 + a2 + µ1a2 − a2
(µ1 − 1)(µ2 + 1)
Como |a − g1| ≥ |a − g2| ≥ 0 entonces
µ2
µ2+1|a − g1|2 ≥ µ2
µ2+1|a − g2|2.
20. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.)
Como |a − g1| ≥ |a − g2| ≥ 0 entonces
µ2
µ2+1 |a − g1|2 ≥ µ2
µ2+1|a − g2|2.
21. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Clases con elementos consecutivos
Una partición P∗ que minimiza W está formada por clases
contiguas según la variable x: si xi, xj ∈ C∗
K, entonces no
existe ningún objeto xh ∈ Ω − C∗
k tal que xi < xh < xj.
Demostración: (Cont.)
Como |a − g1| ≥ |a − g2| ≥ 0 entonces
µ2
µ2+1 |a − g1|2 ≥ µ2
µ2+1|a − g2|2.
Luego, W(P∗) − W(Π) ≥ (a − g1)2
µ1
µ1−1 − µ2
µ2+1
,
de donde W(P∗) − W(Π) ≥ 0 ⇔ µ1
µ1−1 − µ2
µ2+1 ≥ 0
⇔ µ1+µ2
(µ1−1)(µ2+1) 0, lo cual es cierto.
Por tanto, W(P∗) W(Π), lo cual es una contradicción.
22. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Minimización
Si P∗ = (C∗
1 , . . . , C∗
K) minimiza W en Ω, entonces
(C∗
2 , . . . , C∗
K) minimiza W en Ω − C∗
1 .
Demostración:
Para cualquier partición P de Ω en K clases, se tiene
W(P∗) ≤ W(P).
23. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Minimización
Si P∗ = (C∗
1 , . . . , C∗
K) minimiza W en Ω, entonces
(C∗
2 , . . . , C∗
K) minimiza W en Ω − C∗
1 .
Demostración:
Para cualquier partición P de Ω en K clases, se tiene
W(P∗) ≤ W(P).
Sea (D2, . . . , DK) una partición de Ω − C∗
1 en K − 1
clases.
24. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Minimización
Si P∗ = (C∗
1 , . . . , C∗
K) minimiza W en Ω, entonces
(C∗
2 , . . . , C∗
K) minimiza W en Ω − C∗
1 .
Demostración:
Para cualquier partición P de Ω en K clases, se tiene
W(P∗) ≤ W(P).
Sea (D2, . . . , DK) una partición de Ω − C∗
1 en K − 1
clases.
Entonces (C∗
1 , D2, . . . , DK) una partición de Ω en K
clases, y cumple W(P∗) ≤ I(C∗
1 ) +
PK
k=2 I(Dk), con
K
X
k=2
I(C∗
k) ≤
K
X
k=2
I(Dk).
25. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Minimización
Si P∗ = (C∗
1 , . . . , C∗
K) minimiza W en Ω, entonces
(C∗
2 , . . . , C∗
K) minimiza W en Ω − C∗
1 .
Demostración:
Para cualquier partición P de Ω en K clases, se tiene
W(P∗) ≤ W(P).
Sea (D2, . . . , DK) una partición de Ω − C∗
1 en K − 1
clases.
Entonces (C∗
1 , D2, . . . , DK) una partición de Ω en K
clases, y cumple W(P∗) ≤ I(C∗
1 ) +
PK
k=2 I(Dk), con
K
X
k=2
I(C∗
k) ≤
K
X
k=2
I(Dk).
Por lo tanto, (C∗
2 , . . . , C∗
K) es óptima de Ω − C∗
1 en K − 1
26. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Optimalidad del Método de Fisher
Para k = 1, . . . , K, las particiones P1
k construidas por el
algoritmo de Fisher minimizan W: son particiones óptimas de
Ω en k clases.
Demostración: Veamos que, para todo k ∈ {2, . . . , K} y
todo i ∈ {1, . . . , n − k + 1}, la partición Pi
k es óptima de
{i, . . . , n}.
27. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Optimalidad del Método de Fisher
Para k = 1, . . . , K, las particiones P1
k construidas por el
algoritmo de Fisher minimizan W: son particiones óptimas de
Ω en k clases.
Demostración: Veamos que, para todo k ∈ {2, . . . , K} y
todo i ∈ {1, . . . , n − k + 1}, la partición Pi
k es óptima de
{i, . . . , n}.
Por inducción sobre k:
Para k = 2: se quiere particionar {i, i + 1, . . . , n} en dos
clases.
28. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Optimalidad del Método de Fisher
Para k = 1, . . . , K, las particiones P1
k construidas por el
algoritmo de Fisher minimizan W: son particiones óptimas de
Ω en k clases.
Demostración: Veamos que, para todo k ∈ {2, . . . , K} y
todo i ∈ {1, . . . , n − k + 1}, la partición Pi
k es óptima de
{i, . . . , n}.
Por inducción sobre k:
Para k = 2: se quiere particionar {i, i + 1, . . . , n} en dos
clases.
Para i ∈ {1, 2, . . . , n − 2}, el algoritmo construye
Pi
2 = ({i, . . . , j}, Pj+1
1 ), que es óptima porque tiene clases
contiguas y j se escoge tal que minimiza W entre las
particiones en 2 clases contiguas. (Sigue)
29. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Optimalidad del Método de Fisher
Demostración: (Cont.) Supóngase el resultado cierto para
k − 1:
Pi
k−1 es óptima de {i, . . . , n} en k − 1 clases, para todo
i ∈ {1, . . . , n − k + 2}.
Probemos el resultado para l, es decir, que Pi
k es óptima
para todo i ∈ {1, . . . , n − k + 1}.
El algoritmo construye Pi
k = ({i, . . . , j}, Pj+1
k−1 ) con
j ∈ {i, . . . , n − k + 1} que minimiza
I({i, . . . , j}) + W(Pj+1
k−1 ).
Por hipótesis de inducción, Pj+1
k−1 es una partición óptima
de {j + 1, . . . , n} en k − 1 clases. Como las clases deben
ser contiguas, al minimizar I({i, . . . , j}) + W(Pj+1
k−1 ) sobre
j, se está cnsiderando el óptimo global sobre {i, . . . , n}.
Por lo tanto, Pi
k es una partición óptima de {i, . . . , n}.
30. Algoritmo de
Fisher para
Clasificación
Óptima
Javier Trejos
Introducción
Algoritmo
Optimalidad
Prueba
Método de W.D. Fisher
Optimalidad
Optimalidad
La partición P1
k construida al final del algoritmo de Fisher es la
partición óptima de Ω en k clases.