| Artículos | 01 SEP 1995

Separación de clases conceptuales

Tags: Histórico
Eloy Anguiano.

En este artículo voy a tratar un área que he dejado un poco olvidada durante los últimos meses. Me refiero a los algoritmos de programación. Este mes le toca el turno a un algoritmo muy general y sencillo pero escasamente conocido. ¿Cuántas veces, a la vista de una colección de datos divisibles en dos clases conceptuales claramente distintas, nos hemos preguntado si sería posible separar estas dos clases de forma cuantificable y no solamente de forma intuitiva?

La dificultad en separar ambas clases radica habitualmente en la gran cantidad de datos disponibles de cada elemento de la clase, así como de la dispersión en cada uno de los datos de los elementos de la susodicha clase.

Para hacernos una idea del tipo de problema que vamos a tratar imaginemos que vamos a intentar separar a determinado grupo de personas en dos grupos claramente diferenciados, el de morosos y no morosos. Para ello, es necesario utilizar gran cantidad de datos por persona como son sus ingresos mensuales medios, su gasto mensual medio, su tipo de trabajo, nivel de estudios, su gasto medio mensual a crédito, el atraso medio en el pago a crédito, junto con otro buen montón de variables que se le puedan ocurrir.

Una vez determinadas las variables a medir, es necesario utilizar un gran número de personas calificadas como morosos y como no morosos de una forma objetiva o incluso subjetiva.

Con el algoritmo que más adelante describiremos se podrá encontrar la formula lineal que separa de una forma más clara ambos grupos. Si, con estas variables, ambas clases de personas resultan claramente distinguibles, entonces es posible obtener una fórmula capaz de distinguir a priori si un determinado individuo es más probable que pertenezca a una clase que a la otra.

Es evidente las ventajas económicas que pueden suponer la implementación de este tipo de algoritmos de separación de clases. Como más adelante veremos, los más sencillos de éstos, pueden ser implementados fácilmente en un ordenador personal sin un consumo de tiempo excesivo.

Entre todos los tipos de algoritmos posibles para la separación de clases el más sencillo es, evidentemente, un algoritmo con comportamiento lineal. Este recibe el nombre de algoritmo de separación de clases de Fisher. El único problema para implementar este algoritmo es que todo aquél que desee llevarlo a cabo deberá refrescar sus conocimientos de álgebra matricial.

En principio, es necesario que cada individuo esté representado por un vector en un espacio con tantas dimensiones como variables distintas tengamos. Es decir, si sólo tenemos dos variables tendremos un espacio de dos dimensiones, y si tenemos veintitrés variables el espacio será consiguientemente de veintitrés dimensiones.

La dificultad consiste en proyectar todo el espacio sobre una sola recta. Esta recta no puede ser cualquiera, sino que debe ser aquella, de entre todas las imaginables, en la que la proyección de cada una de las clases esté separada lo más posible. De forma gráfica, el problema consiste en encontrar la recta de la parte derecha de la figura adjunta y no una como la de la parte izquierda.

Descripción del algoritmo

Supongamos una colección de n1 datos d-dimensionales x1, x2, ..., xn1 formando una clase H1 y otra colección de n2 datos d-dimensionales x'1, x'2, ...,x'n2 formando una segunda clase H2. El problema es encontrar un vector proyectante de tal forma que el escalar obtenido tras la operación tenga dos grupos de valores claramente distintos, uno para cada una de las clases. El hecho de que el vector de proyección wt no sea unitario es irrelevante.

Con el fin de no hacer muy engorroso el algoritmo voy a limitarme a describirlo y no a deducirlo ni a justificarlo. Si algún lector está interesado podrá encontrar esta justificación en la bibliografía.

Definimos dos vectores m1 y m2 que son los vectores medios de cada una de las clases y la matriz Sw como S1+S2 donde S1 se define como y S2 se define de forma análoga. Estas matrices se denominan matrices de dispersión.

Utilizando estas variables se puede obtener el vector director de la recta sobre la que se va a proyectar a través de la expresión

A partir de este vector sobre el que se proyecta, se puede obtener una fórmula que determina qué variables y en qué proporción son las más importantes. Si a su vez se observan los grupos en la proyección, se puede determinar un valor que divide las proyecciones en dos clases. Este valor puede ser calculado de forma analítica, pero su utilidad es menor puesto que puede ser determinado de forma aproximada sin necesidad de complejos cálculos.

Este tipo de algoritmos puede generalizarse para proyecciones de más de dos clases. En estos casos, el espacio sobre el que se proyecta es mayor que en el caso anteriormente descrito. De hecho, la dimensión necesaria para separar una determinada cantidad de clases es c-1, donde c es dicho número.

En la bibliografía adjunta pueden verse los métodos generalizados para separar linealmente un número de clases superior a dos. Espero que todo lector interesado pueda implementar este algoritmo a pesar de las complejidades inherentes a la programación del álgebra matricial.

La utilidad de estos algoritmos es extensible a todo tipo de actividades humanas: la investigación, el desarrollo, los negocios, etc. Para aplicarlo, es necesario tan sólo tener un problema evidente cualitativamente pero difícil de cuantificar debido al número de variables que intervienen. Como a partir de los datos conocidos se pueden deducir reglas de separación de clases, se puede predecir si una colección de datos perteneciente a un único elemento pertenece a una determinada clase o no.

Una posible aplicación que se me ocurre ahora mismo es, por ejemplo, determinar si una persona que pretende contratar un seguro pertenece a un grupo de alto riesgo o no, combinando muchos de sus datos personales y no con reglas tan dependientes de una colección muy reducida de datos como actualmente se utiliza.

Esta regla permitiría reducir el valor de los seguros sin disminuir los beneficios ni las prestaciones del seguro.

Bibliografía

- "Information Theory and Statistics", S. Kullback, John Wiley, New York, 1959.

- "Pattern Classification and Scene Analysis", R.O. Duda y P.E. Hart, John Wiley & Sons, New York, 1973.

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información