Los beneficios de aplicar algoritmos de agrupación en clústeres para encontrar modelos de solicitudes de cambio

Agrupar solicitudes de cambio conforme a la similitud entre textos

Este artículo describe un enfoque para analizar los modelos de solicitudes de cambio de IBM Rational Team Concert, mediante la aplicación de técnicas de aprendizaje para máquinas, específicamente los algoritmos de agrupación en clústeres, para agrupar las solicitudes de cambio según la similitud entre textos. Al realizar este análisis, los proyectos de desarrollo de software logran una mejora en la calidad, la reutilización, el proceso y la colaboración del equipo. El análisis que se describe en este artículo a modo de ejemplo se basa en la implementación de la biblioteca Apache Mahout del algoritmo k medias de agrupación en clústeres.

Luis Quintela, Solution Architect, IBM

Photo of Luis QuintelaLuis Quintela forma parte del equipo de ingeniera de integracin de ISSR (IBM Software Services for Rational) como arquitecto de soluciones desde julio de 2010, su objetivo es disear integraciones y extensiones para la cartera de productos de IBM Rational software. Luis se uni a Rational Software en 1997. Trabaj como especialista en TI hasta 2001 y, luego, como lder de ventas tcnicas en los distritos Silicon Valley y San Francisco, hasta la adquisicin de Rational software por parte de IBM en 2003. Luego de esto, Luis colabor como Rational Services Manager para el rea de San Francisco Bay hasta 2007, cuando se uni al equipo Community of Practice; primero en la Configuration and Change Management Community, y luego, a partir de 2009, como lder en la Software and Systems Delivery Platform Community. Como Community of Practice Lead, Luis administr el programa Mentor regional de Insight y colabor en muchas otras iniciativas como parte del lanzamiento de IBM Rational Insight, como el desarrollo del portal de aprendizaje y el material de prueba de tecnologa. Luego del lanzamiento, Luis trabaj con los clientes interesados en implementar una solucin para medir el rendimiento basada en Rational Insight. En los ltimos 15 aos, Luis ha trabajado en la venta y la implementacin de soluciones Rational para clientes en todo el mundo. Obtuvo su licenciatura en Ciencias de la Computacin y su Mster en Sistemas Distribuidos y Arquitecturas Paralelas de la Universidad Federal de Ro de Janeiro, en Brasil.



21-08-2012

Ventajas de agrupar solicitudes de cambio

Las solicitudes de cambio se pueden consolidar fácilmente de acuerdo con los datos estructurados para los cuales el dominio de valores está bien definido, como los atributos de un tipo de enumeración específico. Las preguntas acerca de cómo tantas solicitudes de cambio se han enviado a partir de un nivel de categoría, de prioridad o de gravedad, y cuáles son las que permanecen abiertas, se pueden responder con una simple consulta de IBM® Rational Team Concert™ .

El agrupamiento de solicitudes de cambio basado en datos sin estructuración no es un tema menor. Sin embargo, se pueden obtener ventajas con solo derivar inteligencia a partir de este tipo de datos.

Este artículo describe un enfoque para analizar los modelos de solicitudes de cambio de Rational Team Concert, mediante la conversión a seíąales de atributos de texto (el resumen, la descripción y los comentarios) y la aplicación de técnicas de aprendizaje para máquinas, específicamente los algoritmos de agrupación en clústeres que agrupan solicitudes de cambio en función de similitudes. Al realizar este tipo de análisis, los equipos de desarrollo de software se benefician en las siguientes áreas:

Mejora de la calidad
Si se asocian demasiadas solicitudes de cambio con el mismo tema general, es posible que se pueda mejorar el proceso relacionado con esa área, para disminuir la cantidad de problemas en el futuro.
 
Reutilización
Las solicitudes de cambio que pertenecen al mismo agrupamiento pueden resolverse con un enfoque similar, siguiendo el mismo marco general o aplicando el mismo modelo de solución.
 
Búsqueda de duplicados
Es más eficaz buscar duplicados antes de enviar una nueva solicitud de cambio si examina solicitudes similares.
 
Modelos de colaboración
Saber qué miembros del equipo contribuyen a resolver solicitudes de cambio similares puede contribuir a la toma de decisiones de cambios organizativos, a la redefinición de objetivos de carrera y al desarrollo o mejoramiento de habilidades.

Aplicación de algoritmos de agrupación en clústeres

Los algoritmos que son capaces de aprender mediante el análisis de datos estructurados y sin estructuración y de tomar decisiones en función de esta inteligencia adquirida se denominan algoritmos de aprendizaje para máquinas . Hoy en día, muchas de las compaíąías de mayor éxito, como Google o Netflix, dependen de estos algoritmos para redefinir los resultados de los motores de búsqueda o para recomendar elementos nuevos a los usuarios, mediante el análisis de la similitud de sus preferencias con las de otros usuarios. Los algoritmos y las técnicas de aprendizaje para máquinas se clasifican en tres categorías principales:

Recomendación (filtrado colaborativo)
La capacidad de seleccionar productos o elementos para un cliente mediante la deducción de sus preferencias, en función del comportamiento anterior.
 
Agrupación en clústeres
La capacidad de agrupar una gran cantidad de elementos en clústeres, en función de la similitud aprendida.
 
Clasificación
La capacidad de colocar elementos en un conjunto de clases predefinido, por medio de la capacitación con un conjunto de datos predefinido que se conoce.
 

Este artículo se centra en la agrupación en clústeres como método para analizar los modelos de solicitudes de cambio.

La agrupación en clústeres se basa principalmente en el concepto de similitud entre elementos de una colección. Esta similitud se determina en función de la distancia entre los elementos en un espacio multidimensional. Dos elementos pertenecen a un mismo clúster si la distancia entre ellos es lo suficientemente corta.

Los elementos se representan como vectores, con cada atributo como una dimensión. Al asignar valores numéricos a cada atributo, un elemento puede localizarse como un punto en el espacio multidimensional, en el que cada valor se convierte en una coordenada de una dimensión. Entonces, la distancia entre dos elementos se puede calcular al aplicar una medida como la distancia euclídea o de Tanimoto, como se especifica a continuación:

Si se consideran dos vectores:

Distancia euclídea:

Distancia de Tanimoto:

Existen diferentes algoritmos de agrupación en clústeres disponibles que pueden utilizarse para la agrupación en clústeres exclusiva, con superposición, jerárquica o probabilística. Para este trabajo, se optó por el algoritmo k medias de agrupación en clústeres, debido a su simplicidad y eficacia. El algoritmo crea clústeres igualmente exclusivos y considera como dato de entrada la cantidad de clústeres que deben generarse, los centros iniciales (vectores) para cada clúster, la medida de distancia, la cantidad máxima de iteraciones y el umbral de convergencia. Figura 1. Los clústeres de puntos en un plano ilustran tres clústeres creados a partir de un conjunto de vectores en un espacio bidimensional, dado un conjunto inicial de centros (c1, c2 y c3).

En cada iteración las k medias aplican la medida de distancia para seleccionar el conjunto de puntos que está más cerca de cada uno de los centros y, luego, reajusta el centro, dado el clúster de puntos producidos en la iteración. El procesamiento finaliza cuando se alcanza la cantidad máxima de iteraciones o cuando la distancia entre centros en iteraciones contiguas es menor o igual que el umbral de convergencia.

Figura 1. Clústeres de puntos en un plano
Clústeres de puntos en un plano

Uso de Apache Mahout con la agrupación en clústeres

Mahout es un proyecto de alto nivel de la Apache Software Foundation, que comenzó como un subproyecto del proyecto Lucene, una biblioteca de búsqueda en Java. Apache Mahout también es una biblioteca escrita en Java. Se centra en algoritmos de aprendizaje para máquinas y proporciona la implementación de algoritmos en tres categorías principales: clasificación, agrupación en clústeres y filtrado colaborativo.

Con relación a la agrupación en clústeres, Mahout es compatible con las k medias, las k medias difusas para la agrupación en clústeres con superposición, la generación de particiones para la estimación de la cantidad de clústeres necesaria y la ubicación del punto central aproximado, y el algoritmo Dirichlet para la agrupación en clústeres (probabilística) basada en un modelo.

Mahout proporciona implementaciones de esos algoritmos que pueden ejecutarse en un único proceso o pueden aprovechar el sistema Hadoop MapReduce Engine and Distributed File System (HDFS) para realizar una escalación horizontal en un clúster de los nodos en procesamiento. Cuando utiliza HDFS, los vectores se guardan en un archivo de secuencia de Hadoop. El algoritmo se ejecuta como un conjunto de ubicación y reduce las tareas que crean clústeres ajustados para cada iteración. Estos clústeres también se guardan como archivos de secuencia y se convierten en datos de entrada para la siguiente iteración.

El análisis que se describe en este artículo se realizó con la implementación del algoritmo k medias en la versión Mahout 0.5, con la ejecución en un único nodo.


Búsqueda de modelos

La categorización de las solicitudes de cambio mediante el uso de las cláusulas "ordenar por" en un motor de consultas tiene sus limitaciones, puesto que el primer atributo en la cláusula domina el agrupamiento, mientras que los atributos subsecuentes contribuyen únicamente a la partición adicional del agrupamiento de primer nivel.

El enfoque que se definió en este artículo implica encontrar estos agrupamientos (clústeres) mediante el uso de los atributos de texto como el resumen, la descripción y los comentarios, para representar cada solicitud de cambio como un vector multidimensional. De esta manera, se usa la implementación en Mahout del algoritmo k medias, con la medida de la distancia de Tanimoto para calcular la distancia entre vectores.

La representación de las solicitudes de cambio como vectores a partir del contenido de texto se puede realizar asignando una dimensión (índice de vector) a cada palabra que aparece en todo el conjunto de las solicitudes de cambio. La cantidad de instancias de cada palabra específica (frecuencia de término) en una solicitud de cambio dada se convierte en el peso de la palabra, que se asigna al valor de índice del vector correspondiente.

Las instancias comunes de secuencias de dos o más palabras también se pueden considerar parte del vocabulario. En este análisis, los bigramas (una combinación de dos términos) se incluyen en el proceso de generación de vectores.

La inclusión de los comentarios como parte del texto analizado permite tener en cuenta los nombres de usuario (autores de los comentarios). Algunos de los clústeres generados por el algoritmo muestran los nombres como los términos superiores (con más cantidad de instancias) que caracterizan al clúster. Esto facilita la identificación de los miembros del equipo que más contribuyen en ciertas clases de las solicitudes de cambio.

Los datos de entrada se generan al ejecutar la herramienta de exportación de elementos de trabajo de Rational Team Concert. Esta herramienta genera un archivo .csv que incluye el ID del elemento de trabajo, el resumen, la descripción y los comentarios con comillas dobles para un conjunto de 500 tareas de muestra y solicitudes de cambio. El próximo paso en la preparación de los datos de entrada es crear un archivo se secuencia de Hadoop con un conjunto de pares de claves y valores, un par por cada solicitud de cambio. La clave es la ID del elemento de trabajo y el valor es la concatenación de los atributos de resumen, descripción y comentarios.

Este archivo de secuencia se usa como dato de entrada para convertir en seíąales los documentos con un analizador que especializa la clase del seíąalizador para espacios en blanco en la biblioteca Lucene. El analizador personalizado solo incluye seíąales con más de tres caracteres alfabéticos. El resultado se almacena como un archivo de secuencia y se envía como dato de entrada al método que genera los vectores a partir del análisis de las frecuencias de término.

El paso final es ejecutar el algoritmo k medias, que creó veinte clústeres a partir de 500 elementos de trabajo, comenzando con un conjunto de centros seleccionados al azar. Puede mejorar los resultados al partir de un conjunto preseleccionado de temas y elegir de manera manual un representante para cada tema como el centro inicial para los clústeres de temas.

La Tabla 1 muestra algunos de los clústeres útiles que se identificaron (se omitieron los nombres de usuario que aparecieron en el análisis como términos superiores).

Tabla 1. Términos superiores en un subconjunto de clústeres
Términos más frecuentesCantidad de solicitudes de cambio
AppScan, Seguridad, Prueba 27
CLM, Upskilling, PSO, Pilot 24
Medir, Rendimiento, Insight 36
CLM, RTC, RRC, RQM 32
Conexiones, Comunidades 23
Sistemas, Ingeniería de sistemas, Proceso 26
Requisitos, RRC, Administración 3
Arquitectura, RTC, Migración 21

Los modelos limpios son el resultado del análisis de una combinación de vocabulario de dominio específico (seguridad, medir), actividades (mejoramiento de habilidades, piloto) y nombres de producto (AppScan, Rational Team Concert) en un mismo clúster.

Algunos de los clústeres sin cubrir no son tan interesantes, pero pueden ser eliminados en alguna ejecución posterior del algoritmo al crear una lista de términos que deben filtrarse cuando se convierte el texto en seíąales.

Tabla 2. Términos superiores que sesgan el análisis en algunos clústeres
Términos más frecuentesCantidad de solicitudes de cambio
Adjunto, agregado, Rational 28
Trabajo, han, puede, usted 106
Presentación, aplicación, servicios 11

Vías futuras de investigación

Existen algunas maneras de expandir este trabajo inicial. Las siguientes vías pueden mejorar la calidad de los clústeres y contribuir a encontrar otros modelos, como la colaboración en equipo.

Redes de colaboración a partir de comentarios

A partir de los comentarios en Rational Team Concert que contienen el ID de usuario del autor, es posible construir un gráfico de la comunicación en el equipo al analizar los ID de usuario que agregan comentarios en la misma solicitud de cambio. Los nodos del gráfico representan los usuarios; además, si existe un enlace entre dos nodos, es porque los usuarios correspondientes han ingresado al menos un comentario en la misma solicitud de cambio. El espesor del vínculo indica la cantidad de solicitudes de cambio en común en las que los usuarios han realizado comentarios.

Agrupación en clústeres luego del envío

Las solicitudes de cambio pueden asignarse inmediatamente después del envío a clústeres predefinidos que se crearon durante la ejecución del algoritmo de agrupación en clústeres en el modo por lotes durante la noche anterior. Esto contribuye a determinar las posibles soluciones para la solicitud de cambio nueva.

Atributos estructurados y sin estructurar combinados

La creación de vectores que representan las solicitudes de cambio puede tener en cuenta una combinación de atributos estructurados y sin estructurados que tienen un dominio finito de valores. Este enfoque puede mejorar la calidad de los clústeres sin cubrir.

Inclusión de adjuntos en el análisis

Apache Tika es un marco para la identificación de los tipos de medios y la extracción del texto y los metadatos. Se puede usar para extraer texto de los documentos adjuntos a solicitudes de cambio. El texto se convierte en seíąales y se incluye en el proceso de generación de vectores.

Recursos

Aprender

Obtener los productos y tecnologías

  • Descargue el producto Rational Team Concert de Jazz.net y pruébelo usted mismo. De uso gratuito en hasta 10 proyectos por el tiempo que desee (es obligatorio registrarse).
  • Evaluate IBM software de la manera que le convenga: Descárguelo para probarlo, pruébelo online, utilícelo en un entorno de nube, o pase un par de horas en el SOA Sandbox aprendiendo cómo implementar eficientemente la arquitectura orientada al servicio.

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Rational
ArticleID=831226
ArticleTitle=Los beneficios de aplicar algoritmos de agrupación en clústeres para encontrar modelos de solicitudes de cambio
publish-date=08212012