La determinación de que tan parecido
es un conjunto de datos con otro es de mucha importancia en la
minería de datos. Varios algoritmos de clasificación como K-means se
basan en el hecho de saber que tanto parecido tiene un dato con otro.
Parte del interés de determinar que tan parecido es un atributo con
otro son las conclusiones que se puedan obtener a través de esto, por
ejemplo, supongamos que tenemos una base de datos de seguros y
tenemos reconocido unos 1000 clientes que han sido muy buenos desde
el punto de vista del negocio, entonces cuando llega un nuevo cliente
queremos saber que tan cerca esta este cliente de ser como uno de
nuestros mejores consumistas.
Existen muchas formas de calcular la
similitud de un atributo, y esto en gran medida depende del
conocimiento que poseamos de la información, por ejemplo, si tenemos
un atributo estatura y tenemos dos medidas, x1= 1.70 metros y x2 =
1.78 metros, entonces la distancia entre ambos es de 8 centímetros y
su cálculo es muy sencillo, a decir, Distancia = x1 – x2.
Pero no todo es tan fácil, en la
mayoría de las ocasiones tendremos mas de un atributo a considerar,
por ejemplo, supongamos que tenemos los atributos de estatura, peso,
edad, género, presión arterial y temperatura.
Estatura | Peso | Edad | Género | Presión Arterial | Temperatura |
1.71 | 70 | 27 | Masculino | 120/80 | 36.5 |
1.75 | 80 | 29 | Femenino | 130/90 | 37 |
1.79 | 60 | 30 | Masculino | 110/80 | 36.4 |
Como se puede observar, saber la
distancia que existe entre la fila 1 y la fila 3 ya no es tan trivial
y se requiere de cierto análisis para determinarla. Por suerte
existen ciertas fórmulas que se encargan de determinar distancias
para facilitarnos la vida. A continuación expongo algunas de ellas :
Distancia para datos no numéricos
Cuando
no tenemos datos numéricos, bueno, podríamos decir que no tenemos
mucho de donde buscarle, en este tipo de datos debemos de conocer un
poco (o mas bien bastante) acerca de la información que queremos
medir. Usualmente lo que se realiza es una diferencia de conjuntos :
o
bien una suma de ellas y se toma la distancia como la cantidad de los
componentes faltantes, por ejemplo, tengamos al conjunto A
={casa,coche,mesa,foco,estufa} y al conjunto B = {casa,coche,mesa,
televisión}, entonces, la distancia se mediría de la siguiente
manera:
D =
size(A – B) + size (B – A)
D = 2
+ 1
entonces
tenemos que la diferencia entre ambos conjuntos es 3.
Distancia Euclideana
En matemáticas, la distancia
euclidiana o euclídea es la distancia "ordinaria" (que se
mediría con una regla) entre dos puntos de un espacio euclídeo, la
cual se deduce a partir del teorema de Pitágoras[1].
Su representación Gráfica, para la
diferencia de dos puntos A(x1,y1) y B(x2,y2) es la siguiente:
Y su fórmula[2]:
en donde Xk y Yk son cada uno de los
atributos de d(X,Y), La sumatoria recorrerá cada uno de dichos
atributos, pero veamos un ejemplo, supongamos que tenemos los
siguientes datos:
A{1.71,70,27} y B{1.75,80,29} ,
entonces tenemos
y nos da una distancia de 10.198.
Distancia de Mahalanobis
Esta distancia es
parecida a la Euclideana, pero contempla brindar pesos a los
atributos, es decir, por ejemplo, si tenemos dos atributos, estatura
y nivel de ingresos, y queremos definir su distancia, claramente al
final de cuentas será el ingreso el que será de importancia, dejando
casi exiliado a la estatura, veamos un ejemplo, tenemos A{1.71,9000}
y B{1.75,8900}, claramente se ve que el número de estatura será poco representativo al momento de calcular la distancia Euclideana.
Para estos casos
contamos con la distancia de Mahalanobis, la cual utiliza la inversa
de la matriz de covarianza para determinar los pesos de cada
atributo, su fórmula es la siguiente:
Supongamos que
tenemos peso, estatura y edad, entonces:
Calculemos la
matriz de covarianzas para peso, estatura y edad
Obtengamos la
inversa de cada matriz
realizar el
calculo (x1 – x2) ' * inversa de matriz de covarianzas *
(x1-x2) y se obtiene su raiz cuadrada
Para el cálculo
de la matriz de covarianzas puedes seguir este enlace, allí lo
explican paso a paso sin entrar en formulaciones complicadas
http://www.ehowenespanol.com/calcular-matriz-varianzacovarianza-como_484793/.
Correlación
No
existe mucha teoría que decir en este punto, la correlación mide el
grado en que dos variables están relacionadas entre si, por ejemplo,
peso y estatura, su fórmula es la siguiente:
Correlacion(X,Y) =
Covarizanza(X,Y) / (DesviaciónEstandar(X) * DesviaciónEstandar(Y))
Su resultado va de
-1 a 1 donde -1 indica que tienen una perfecta negativa relación y
1 una perfecta positiva relación
A continuación muestro una imagen que
muestra las relaciones entre dos variables desde -1 a 1. Tomado de
[2]:
Distancia Binaria
Las medidas para
datos binarios son llamados coeficientes de similaridad y su fórmula
es la siguiente:
d(x,y) = (F11 +
F00) / (F01 + F10 + F11 + F00)
en donde:
F00 : El número
de atributos donde X es 0 y Y es 0.
F01 : El número
de atributos donde X es 0 y Y es 1.
F10 : El número
de atributos en donde X es 1 y Y es 0 .
F11 : El número
de atributos en donde X es 1 y Y es 1
Coeficiente de Jaccard
Esta
medida se utiliza para datos binarios que provienen de bases de datos
transaccionales, por ejemplo, donde 1 representa una venta y 0
representa que no se compró el artículo. La fórmula es:
d(X,Y)
= F11 / (F01 + F10 + F11)
Datos generales
Finalmente, existen muchos mas métodos,
aquí solo he comentado los mas comunes. Solo queda aclarar una cosa,
por si se requiere diseñar un nuevo método que evalúe distancia
para datos específicos, se deben de tener las siguientes
consideraciones:
Positivismo
- d(X,X) >= 0 para todos los X y Y.
- d(X,Y) = 0 solo si X = Y
Simetria
- d(X,Y) = d(Y,X) para todo X y Y
Desigualdad Triangular
- d(X,Z) <= d(X,Y) + d(Y,Z) para todos los puntos X,Y y Z
[1]http://es.wikipedia.org/wiki/Distancia_euclidiana,
17/03/2014
[2]Introduction to data mining,
Pang-Ning Tang, Adisson Wesley
1 comentario:
Una pregunta, cuando tengo un atributo que puede tener 5 elementos, o 2, que no tienen orden, pero hay otros que si.
¿Como hacer para calcular la distancia?
Publicar un comentario