PROCEDIMIENTO PARA LA IDENTIFICACIÓN DE DATOS ANOMALOS EN BASES DE DATOS H. Kuna, A. Rambo, S. Caballero, G. Pautsch, M. Rey, C. Cuba Depto. de Informática, Facultad de Ciencias Exactas Quím. y Naturales Universidad Nacional de Misiones [email protected] R. García-Martínez Departamento Desarrollo Productivo y Tecnológico. Universidad Nacional de Lanús [email protected] Resumen La información se ha transformado en uno de los recursos más importantes que las organizaciones necesitan proteger. En este contexto, la auditoría de sistemas tiene un rol central en prevenir los riesgos relacionados con la tecnología de la información. El desarrollo e implementación de técnicas y herramientas que asistan al auditor (CAATs) durante este proceso es aún incipiente. La minería de datos se aplica de manera asistemática y poco desarrollada en los procesos de auditoría de sistemas. El presente trabajo intenta mostrar un procedimiento que utiliza técnicas de clustering (clasificación y agrupamiento de datos por características similares) donde se procede a la detección de campos considerados outliers, pudiendo representar datos anómalos en la base de datos. Esto podría ser muy útil en las tareas de auditoría de sistemas. Abstract Information has become one of the most important assets companies need to protect. From this fact, the audit of systems has a central role in preventing risks related to information technology. Development and implementation of the computer-assisted audit technique (CAATs) is still incipient. Data mining applies in an embryonic and asystematic way to tasks related to systems audit. This paper tries to show a procedure that uses clustering techniques (classification and grouping of data with similar characteristics) which comes to detecting outliers fields considered and may represent corrupted data in the database. This could be very useful in systems auditing tasks. 1. Introducción El manejo de grandes volúmenes de datos es una constante en todas las organizaciones, lo que exige la F. Villatoro Departamento de Lenguajes y Ciencias de la Computación, Universidad de Málaga. capacitación de los recursos humanos existentes para manipular, procesar y obtener el máximo beneficio de los mismos. La MD (minería de datos), conocida como el proceso de extracción inteligente de información no evidente pero presente en las bases de datos, ha sido ampliamente utilizada en diferentes casos como por ejemplo en la medicina [10]. Algunas técnicas de MD se encuentran orientadas a detección de outliers [15]. Un outlier es aquel dato [7], que por sus características diferenciadoras en comparación a los demás datos contenidos en la base de datos es sospechoso de haber sido introducidos por otros mecanismos. La auditoría de sistemas es el conjunto de actividades tendientes a generar recomendaciones que permitan optimizar el correcto funcionamiento de los sistemas existentes en las organizaciones. Las acciones pueden ser de carácter preventivo o correctivo [9]. El propósito del tipo preventivo es identificar actividades de vital importancia como por ejemplo la seguridad. Las normas ISO 27001/2 (y la anterior ISO 17799), hacen mención al ordenamiento de las actividades. La planificación de las mismas es un tema abordados en la norma ISO 9000-2000 y en los estándares de la Information Systems Audit and Control Foundation COBIT [4]. En el caso de las auditorías correctivas tienden a detectar y en algunas ocasiones corregir los problemas ya acontecidos, entre los cuales se encuentra la posibilidad de realizar estudios de datos anómalos. Los datos anómalos pueden crear distorsión en los resultados obtenidos al realizar cualquier tipo de análisis sobre los mismos. Sin embargo son menos frecuentes los estudios sobre la calidad de los datos, considerando a los outliers como posibles datos anómalos, teniendo en cuenta como criterios de calidad la detección de datos anómalos, sucios o con ruido. Buscar anomalías realizando consultas o análisis secuenciales sobre los datos, requiere un planteo específico, el cual amerita conocerlas previamente. Para tareas de auditoría es relevante tener mecanismos que permitan automatizar estas prácticas, entre las cuales la aplicación de la MD resulta interesante, debido a su capacidad para detectar patrones y relaciones entre los datos que no son evidentes. Para realizar la aplicación de técnicas de MD existen propuestas que definen una serie de actividades tendientes a ordenar el proceso por ejemplo la empresa SAS propone la utilización de la metodología SEMMA [13] (Sample, Explore, Modify, Model, Assess). En el año 1999, Las empresas, NCR (Dinamarca), AG (Alemania), SPSS (Inglaterra) y OHRA (Holanda), desarrollaron una metodología de libre distribución CRISP-DM (Cross-Industry Standard Process for Data Mining) [5]. La metodología P3TQ [12] (Product, Place, Price, Time, Quantity), tiene dos modelos, el Modelo de MD y el Modelo de Negocio. Existen trabajos que definen una taxonomía de las anomalías detectadas en la búsqueda de outliers [3], donde se mencionan estudios realizados en diferentes contextos como detección de fraude tanto en tarjetas de crédito [1] [14] como en teléfonos celulares [6], entre otros. Se observa que es posible utilizar las técnicas de MD relacionadas a los outliers entre las cuales se encuentra la técnica de clustering. Esta técnica se basa en un método de aprendizaje no supervisado en el cual los datos se agrupan de acuerdo a características similares. Es una de las principales técnicas para descubrir conocimiento oculto, siendo muy utilizado en el descubrimiento de patrones en bases de datos (BD) sin ningún conocimiento previo, y en la detección de los valores extremos. Cuanto mayor es la distancia entre un objeto de una base de datos y el resto de la muestra, mayor es la posibilidad de considerar al objeto como un valor atípico. Los principales métodos para medir la distancia son la distancia euclídea, la de Manhattan y de Mahalanobis. Las técnicas de agrupación se pueden clasificar de la siguiente manera: 1. Agrupamiento jerárquico, que produce una descomposición jerárquica del conjunto de datos, creando un gráfico conocido como dendograma que representa la forma de agrupación. 2. Métodos basados en particiones, en los que se realizan divisiones sucesivas del conjunto de datos. Los objetos se organizan en k grupos, de modo que la desviación de cada objeto debe reducirse al mínimo en relación con el centro de la agrupación. 3. Métodos basados en la densidad, donde cada cluster se relaciona con una medida basada en este parámetro. Aquí los objetos situados en regiones con baja concentración son considerados anómalos. Existen otros procedimientos como los basados en métodos difusos, en redes neuronales, en algoritmos evolutivos, en entropía, etc. El presente trabajo plantea utilizar técnicas de MD, entre ellas específicamente las de clustering, para identificar valores atípicos y mejorar de esa manera la calidad de los datos. Para ello se procede a analizar aquellas técnicas que mejor apliquen, buscando determinar las ventajas y desventajas que presentan, siendo el objetivo final el desarrollo de procedimientos que permitan detectar outliers. Considerando que estos pueden representar datos anómalos útiles, para el auditor ya que además de detectar las tuplas indican los campos dentro de las mismas considerados outliers. Siendo este un importante aporte dado que hasta el presente trabajo solamente es posible detectar las tuplas que contienen valores atípicos. En la sección 2 Materiales y métodos se describen el origen de los datos utilizados en cada prueba. Además se indican los programas utilizados con una breve descripción de la finalidad de los mismos dentro del presente estudio. Se realiza la descripción de los procedimientos y algoritmos empleados subdivididos para su mejor interpretación en dos apartados 2.1 indicando el método estadístico y 2.2 donde se explica el procedimiento propuesto el cual utiliza clustering. En la sección 3 Resultados y discusión se presentan los pasos utilizados para realizar cada una de las etapas que involucran los procedimientos descriptos anteriormente junto con gráficos y tablas explicativas. En la sección 4 Conclusiones se identifican los principales logros del presente estudio. En la sección 5 Referencias se puede observar el compendio bibliográfico utilizado de referencia. 2. Materiales y Métodos La performance de la técnica propuesta se mide usando lotes generados aleatoriamente y una base de datos que contiene datos reales sobre cáncer de mama. La base de datos de Cáncer de mama se obtuvo de Wisconsin Diagnostic Breast Cancer [16] y por otra parte se generó una base de datos con números aleatorios que responden a una distribución normal, el objetivo del lote de datos generados es determinar los mejores valores de los parámetros utilizados en el procedimiento propuesto. Esta última BD fue creada utilizando la aplicación Mathlab [17] utilizando la fórmula que se muestra en (1) m = random(' Normal' , a, b, c, d ) Calculo de la media aritmética simple(2) Donde xi es cada uno de los elementos de la muestra y n es el tamaño de la muestra. Formula de distribución normal utilizada en el Mathlab. (1) Donde ─ Normal: es el nombre de la distribución. ─ a: es la mediana, rango para generar números a partir del 1 a x<200 ─ b: es la dispersión ─ c: es la cantidad de registros a generar ─ d: la cantidad de columnas. Con estos datos se aplicaron los procedimientos iniciales que involucraban el análisis estadístico de los registros (con el objetivo de determinar estadísticamente los valores outliers) y la aplicación del procedimiento propuesto que utiliza clustering. Este procedimiento sirvió para determinar los valores outliers y contrastarlos con los obtenidos a través del análisis estadístico de los datos. El procedimiento que utiliza clustering aplicado sobre la base de datos creada con el Mathlab, se ejecutó en sucesivas pruebas de manera tal que se pudo determinar los valores óptimos de los parámetros (LOF, MinPtsMin y MinPtsMax) necesarios para ejecutar el algoritmo. Luego se aplicó el procedimiento que utiliza clustering sobre la BD de cáncer de mama para determinar los valores outliers. Finalmente se evaluaron los resultados obtenidos. Para implementar el procedimiento que utiliza la técnica de clustering se utilizó el Rapid Miner [20], en esta instancia se programó una interface de trabajo en Java para lo cual se utilizó el NetBeans 6.9.1 [18] con la finalidad de automatizar los procesos de prueba utilizando el Rapid Miner. Para almacenar los resultados de las diferentes pruebas y realizar las comparaciones se utilizó una hoja de cálculos Calc de Libre Office [19]. 2.1. Método estadístico Se procedió a realizar el estudio de los datos aplicando métodos estadísticos como el cálculo de la media aritmética simple, ver formula (2) y el desvío estándar muestral para determinar los valores extremos o atípicos, ver formula (3). − xi − x ∑ i =1 n −1 n s= 2 Calculo del desvío estándar muestral (3) Donde x es la media de muestra o promedio (número1; número2;…) y n es el tamaño de la muestra. Sobre cada conjunto de los campos de datos se realizaron los siguientes pasos: ─ Se calcula el valor medio del conjunto de datos (columnas, o campos de los registros) ─ Se calcula el desvío estándar de este conjunto de datos ─ Se determinan los rangos de valores máximos y mínimos aceptables sumando y restando el doble del valor del desvío estándar al valor de la media calculada según lo establecido en el área de estadística. [11]. En este paso se identifican los valores atípicos, que son aquellos que están fuera del rango establecido en el punto anterior. Cabe destacar que la finalidad del método estadístico es determinar los outliers para luego compararlos con los obtenidos a través del procedimiento que aplica clustering y de esta manera determinar la eficiencia del mismo 2.2. Procedimiento propuesto aplicando clustering (LOF) Luego de determinado cuales eran los registros que potencialmente tenían ruido, aplicando el análisis estadístico; se procedió a aplicar el procedimiento propuesto que incluye el algoritmo de clusterización LOF (Local Outlier Factor) [8], el cual pertenece al conjunto de técnicas basadas en densidad para la detección de outliers. Esta técnica hace uso de la estimación de densidad de los objetos, para ello, los objetos localizados en regiones de baja densidad, y que son relativamente distantes de sus vecinos se consideran anómalos. El Local outlier factor (LOF) de una instancia x se encuentra definida por n m= ∑x i =1 n i LOFMinPts ( x ) = lrd MinPts ( y ) MinPts ( x ) ∑ ( ) lrd y∈N MinPts x N MinPts ( x ) Calculo de LOF(4) Donde lrd representa la densidad de alcanzabilidad local (lrd) de una instancia. Dada una instancia x, su lrd se define como la inversa de la distancia de alcanzabilidad promedio basada en la vecindad más cercana MinPts de la instancia x. Cuando la densidad de los vecinos de una instancia x es alta o cuando su densidad es baja entonces su LOF será grande y puede ser considerado un outlier [2]. En esta etapa se utiliza la aplicación realizada en Java trabajando en forma conjunta con el Rapid Miner para aplicar técnicas de MD específicamente LOF. El algoritmo LOF es un algoritmo basado en la densidad que determina un factor local de outlier, este facto puede tomar valores entre 0 e ∞ donde 1 indica que se trata de un valor normal, este valor es incorporado a cada tupla. Este algoritmo utilizado independientemente no permitía determinar qué campo es un outlier, solo lograba identificar la tupla completa que poseía entre sus campos posibles datos inconsistentes o con ruido. El objetivo de este procedimiento es detectar aquellos campos dentro de cada tupla que son outliers. El procedimiento hace lo siguiente: ─ se aplica LOF a una BD ─ se separan dos bases de datos de acuerdo al valor de LOF, de acuerdo a la experimentación cuando LOF > n (siendo n un valor a determinar experimentalmente), se crean de esta manera dos bases de datos una “limpia” (con valores de LOF < n) y otra con tuplas donde se considera que alguno de sus valores es atípico (con valores de LOF > n). ─ sobre la base de datos limpia se determinan los metadatos, se toman los valores máximos y mínimos y la media de cada columna ─ se desarrolla un script que realiza las siguientes funciones: recorre todas las columnas y compara los valores máximos y mínimos “normales” con los de cada campo sobre la base de datos que contienen valores atípicos, si el valor del campo es mayor o menor que los valores “normales” marca ese campo como posible outlier. ─ se aplica el script sobre la base de datos “sucia” o sea donde el valor de LOF de la tupla representa un posible outlier, el resultado es que se obtienen los campos que posiblemente sean valores extremos. Este procedimiento se puede observar en la figura 1. Cabe destacar que el valor óptimo para la variable n, donde se busca LOF > n para valores “limpios” y LOF < n para valores atípicos, es el valor “n = 1.5”. Se arribaron a este parámetro y al de MinPtsMin = 10 y MinPtsMax = 20 luego de sucesivas pruebas realizadas sobre la base de datos con datos generados aleatoriamente esta comparativa de rendimiento que justifica la elección se observa en la tabla 2, 3 y 4. 3. Resultados y Discusión Para la experimentación se crearon tres BD (bases de datos) que tienen la distribución normal utilizando el Mathlab, un conjunto de datos de 200, otra de 400 y una última de 2000 registros. Se realizaron pruebas para cada una de las BD primeramente utilizando el análisis estadístico, para determinar los outliers y luego se aplicó el procedimiento propuesto donde se utilizó la herramienta de MD en el Rapid Miner para lo cual se testearon diferentes valores de las variables MinPtsMin y MinPtsMax y Limites de LOF (valor de n) tomando como criterios de validación y efectividad los casos que mayor acierto o descubrimientos de outliers presentaba y menores casos de falsos positivos. Los 2 primeros parámetros son utilizados para definir el vecindario que el algoritmo formará alrededor de cada tupla a la hora de su análisis particular. El MinPtsMin es el límite de la cantidad mínima de tuplas con las cuales se debe realizar el cálculo del valor de LOF, mientras que MinPtsMax marca el límite máximo de tuplas que se utilizarán para la misma tarea. Por esto es que se dice que definen el vecindario de tuplas contra las que cada una se va a comparar para determinar su valor de outlier. Los valores de las variables utilizadas en cada prueba fueron: ─ ─ ─ ─ Limite LOF: 1.3, 1.5, 1.7, 1.9 y 2. MinPtsMin: 1, 5, 10, 20 y 50. MinPtsMax: 2, 10, 15, 20, 40 y 100 Conjunto de datos: 200, 400 y 2000 registros. Los mejores resultados como se observa en la tabla 1, se obtuvieron con valores siguientes: Límite de LOF igual a 1.5, MinPtsMin igual a 10 y MinPtsMax igual a 20. La tabla 1 presenta los resultados obtenidos con los diferentes grupos de datos (200, 400 y 2000 registros). Estos valores se tomaron como parámetros para realizar las pruebas con el procedimiento diseñado que incluye aplicar clustering sobre la base de datos de cáncer de mama. De esta manera se puede observar como los valores óptimos para los parámetros se encuentran con n = 1,5 MinPtsMin = 10 y MinPtsMax = 20. Tabla 1. Valores Obtenidos en las pruebas realizadas aplicando el procedimiento propuesto sobre la BD generada, con valores de Limite de LOF igual 1.5 (extracto del conjunto de pruebas realizadas). Figura. 1. Procedimiento de clustering utilizando LOF aplicado sobre la BD Para obtener estos valores óptimos se ejecutaron sucesivas pruebas determinando la efectividad obtenida según el criterio mencionado anteriormente. Los datos para los diferentes valores MinPtsMin, MinPtsMax y límite de LOF para 200 registros se observa en la tabla 2. Los datos para los diferentes valores MinPtsMin, MinPtsMax y límite de LOF para 400 registros se observa en la tabla 3. Los datos para los diferentes valores MinPtsMin, MinPtsMax y límite de LOF para 2000 registros se observa en la tabla 4. La efectividad se calculó teniendo en cuenta el valor de aciertos (valor porcentual de outliers detectados sobre el total existente) menos el valor yerro (valor porcentual de los falsos positivos sobre el total existente). Tomando como mejor efectividad los valores más altos positivos y como una mala efectividad los valores más bajos negativos. Luego de obtener estos resultados se tomaron los valores óptimos LOF, MinPtsMin y MinPtsMax para proceder a realizar las pruebas sobre la BD de cáncer de mama. En el estudio realizado en “A New Local DistanceBased Outlier Detection Approach for Scattered RealWorld Data” [1] se utiliza la base de datos de cáncer de mama de Wisconsin Diagnostic Breast Cancer [16] para detectar tuplas outliers. En esta base de datos aparecen clasificados tipos de cáncer de mamas con diferentes características que responden a casos de cáncer maligno y benigno. En este estudio se separaron los datos correspondientes a cáncer maligno identificando un set o conjunto de datos de 212 valores. Tomando como referencia este estudio, el cual considera el conjunto de datos que indican cáncer benigno como datos normales y el conjunto de datos que representan casos de cáncer malignos como los datos anormales o atípicos. De esta manera los casos de cáncer maligno estarían destinados a formar parte del conjunto que representaría los outliers en la base de datos que estaría compuesta únicamente por conjuntos de datos que identifican características de cáncer benigno. Tabla 2. Valores Obtenidos en las pruebas realizadas aplicando el procedimiento propuesto sobre la BD generada, con 200 registros variando los valores de MinPtsMin, MinPtsMax y LOF (extracto del conjunto de pruebas realizadas). Para optimizar el funcionamiento del procedimiento se seleccionaron solamente 10 tuplas con el atributo “tipo de cáncer”= “maligno”, para obtener estos registros se aplicó con la herramienta Rapid Miner un procedimiento de clusterización con K- Means. Esta técnica de clustering selecciona grupos representativos entre los datos. Sus diferentes variantes se basan fundamentalmente en la forma de medir distancias entre los datos. El Rapid Miner utiliza el método de centroides donde la distancia entre dos clusters se define como la distancia entre los centroides (medias de los cluster). Luego de aplicar esta técnica se detecta el cluster más lejano y se selecciona un conjunto de 10 registros que se identifican como candidatos para conformar el conjunto de outliers a ser introducidos en la BD de cáncer que posee únicamente los casos de cáncer benigno. De este conjunto compuesto por 19 registros se los ordena de mayor a menor y se toman los diez primeros, los cuales se introducen dentro del conjunto de registros que pose únicamente los casos de cáncer benigno. Tabla 3. Valores obtenidos en las pruebas realizadas aplicando el procedimiento propuesto sobre la BD generada, con 400 registros variando los valores de MinPtsMin, MinPtsMax y LOF (extracto del conjunto de pruebas realizadas). De esta manera se determinan las diez tuplas a ser utilizadas como outliers por ser parte más representativa del conjunto de datos que componen a los registros que contienen las características del cáncer maligno. Se aplica el procedimiento que utiliza clustering aplicando LOF con estos valores incorporados a la base de datos con cáncer benigno y se obtienen los resultados de la tabla 5. Es posible observar que con alta efectividad se identifican y aíslan los registros que poseen outliers. Tomando como criterios de efectividad mayor cantidad de outliers identificados y menor cantidad de falsos positivos. 4. Conclusiones Se comprueba con el procedimiento empleado que es posible detectar con efectividad los registros que contienen outliers y en particular fue posible detectar los campos de esos registros que son considerados outliers con una efectividad del 100% en el caso de la base de datos real utilizada para la experimentación. Tabla 4. Valores Obtenidos en las pruebas realizadas aplicando el procedimiento propuesto sobre la BD generada, con 2000 registros variando los valores de MinPtsMin, MinPtsMax y LOF (extracto del conjunto de pruebas realizadas). Valor MinPtsMax: 20 Outliers reales de la BD 19 Out. detectados por el procedimiento Falsos Positivos Efectividad 14 0 73,6842105 Se logró determinar los valores de los parámetros utilizados en el algoritmo propuesto que mayor efectividad tienen. Hasta el presente todas las investigaciones sobre el tema permitían identificar tuplas con sospecha de contener outliers, en cambio el procedimiento propuesto permite identificar específicamente que campo es el que tiene outliers, siendo esto de mucha utilidad en la tarea del auditor. 5. Líneas Futuras En futuros trabajos se probarán otros métodos de clustering con el objetivo de evaluar su rendimiento para compararlos con los métodos estudiados. Además de aplicar los procesos desarrollados en este trabajo en bases de datos del mundo real. Por otra parte se pretende trabajar sobre los algoritmos empleados de manera tal que se pueda mejorar el rendimiento del proceso. El presente trabajo forma parte de un proyecto de investigación que involucra el desarrollo de una tesis de doctorado, una tesis de maestría y dos tesis de grado. Además de contar la tesis de doctorado con el auspicio del capítulo ISACA en Buenos Aires (ADACSI, Asociación de Auditoría y Control de Sistemas de Información), una futura línea de trabajo se relaciona con el desarrollo de una herramienta que permita automatizar las actividades de auditoria de base de datos para que sea de utilidad directa en la industria. 6. Referencias Tabla 5. Tabla de resultados obtenidos sobre la base de datos de cáncer BD - Cancer Valor límite de LOF: 1,5 Valor MinPtsMin: 10 Valor MinPtsMax: 20 Outliers reales de la BD 10 10 Out. detectados por el procedimiento 0 Falsos Positivos 100 Efectividad Valor límite de LOF: 1,5 Valor MinPtsMin: 10 [1]. Bolton, R. And Hand, D.: Unsupervised profiling methods for fraud detection. In Proceedings of the Conference on Credit Scoring and Credit Control VII. (1999) [2]. Breunig, M; Kriegel, H, Raimond T.; Sander, J.: LOF: Identifying Density-based Local Outliers. ACM SIGMOD. (2000) [3]. Chandola V., Banerjee A., and Kumar V.: Anomaly Detection: A Survey. University of Minnesota. Pg 15-58. ACM Computing Surveys, Vol. 41, No. 3, Article 15. (2009) [4]. COBIT. 2008. Control Objectives for Information and related Technology. http://www.isaca. org/cobit/. Vigencia 16/04/08. [5]. CRISP-DM. 2008. http://www.crisp-dm.org/. Vigencia 15/09/08. [6]. Fawcett, T. and Provost, F.: Activity monitoring: noticing interesting changes in behavior. In Proceedings of the 5th ACM SIGKDD International Press, 53–62. Conference on Knowledge Discovery and Data Mining. ACM (1999) [7]. Hawkings, D.: Identification of Outliers. Chapman and Hall. London. (1980) [8]. Hu T. and Sungs S. Y.: Detecting pattern-based outliers. Pattern Recognition Letters, vol. 24, no. 16, pp. 3059-3068. (2003) [9]. ISO/IEC 27001. Primera Edición 15/10/2005. Estándar Internacional. (2005) [10]. Ke Z., Marcus H. and Huindong J.: A New Local Distance-Based Outlier Detection Approach for Scattered Real-World Data. RSISE, Australian National University, National ICT Australia (NICTA), Canberra Lab, ACT, Australia (2009) [11]. Peña D.: Análisis de Datos Multivariantes, Pg 84. McGraw-Hill. Interamericana de España. S.A.U. (2003). [12]. Pyle, D.: Business Modeling and Business intelligence. Morgan Kaufmann Publishers (2003) [13]. SEMMA. 2008. http://www.sas.com/technologies/analytics/datamin ing/miner/semma.html. Vigencia 15/09/08. [14]. Teng, H., Chen, K., and Lu, S.: Adaptive real-time anomaly detection using inductively generated sequential patterns. In Proceedings of the IEEE Computer Society Symposium on Research in Security and Privacy. IEEE Computer Society Press, 278–284. (1990) [15]. Torr P.H.S. and Murray D. W.: Outlier Detection and Motion Segmentation. Sensor Fusion VI Volume: 2059, Pages: 432-44. Robotics Research Gorup, Department of Engineering Science, University of Oxford Parks Road, Oxford OX1 3PJ, UK. (1993) [16]. WDBC el conjunto de datos es de UCI ML Repository: http://archive.ics.uci.edu/ml. última visita 20/05/2011. 5.1 Software Utilizado [17]. Mathlab. Entorno de cálculos programable. Software con licencia académica. http://www.mathworks.com/ (18-06-2011) [18]. NetBeans. Entorno para desarrollo de aplicaciones. Open Source http://netbeans.org/ (18-06-2011) [19]. Open Office. Calc. Programa de Hoja de Cálculo. Open Source. http://www.libreoffice.org/features/calc/ (18-062011). [20]. RapidMiner. Sistema Open Source para minería de datos. http://rapidi.com/content/view/26/84/lang,en/ (18-06-2011)