viernes, 27 de noviembre de 2009

Web semántica

La World Wide Web o simplemente Web como servicio creado para Internet, es un espacio preparado para el intercambio de información diseñada para el consumo humano. Las aplicaciones Web son creadas por personas para ser entendidas por personas. No existe un formato común para mostrar la información, por lo cual, los diseñadores y desarrolladores de aplicaciones Web crean sus páginas dependiendo de los potenciales usuarios que van a visitarlas. Los actuales buscadores residentes en la Web realizan la búsqueda de información, con más o menos fortuna, mediante palabras clave que aparecerán en el código de lenguaje de marcado de hipertexto de las aplicaciones Web dispersas en Internet. En los últimos años, algunas empresas están realizando anotaciones de datos introducidas dentro de este código lenguaje de marcado de hipertexto, siguiendo algún esquema de anotación común, normalmente basado en el lenguaje de marcado extendido.

Otra carencia de la situación actual es que, con los estándares Web del momento, no se puede diferenciar entre información personal, académica, comercial, etc. Es decir, cuando un buscador Web realiza una consulta con algunas palabras clave, normalmente aparece información que no es útil porque no corresponde a lo que se está buscando. Además no todas las páginas proporcionan igual cantidad de información, debido precisamente a que no existe un formato o convenio que establezca el contenido que debe añadirse a los sitios Web. Por otro lado, los agentes de búsqueda actuales no se diseñan para “comprender” la información que reside en la Web, precisamente porque es prácticamente imposible conocer la representación de los datos ubicados en las diferentes aplicaciones residentes en la Web.

Con lo mencionado y de forma similar a como la presentó Tim Berners-Lee el año 1998 y adaptando los ejemplos a la ingeniería de ontologías, se puede decir que la Web, basada en documentos y enlaces de hipertexto, fue diseñada para la lectura humana y no para que la información que contiene pudiera procesarse de forma automática. Si se hace una búsqueda de documentos, por ejemplo, por el término "ingeniería de ontologías", la Web no distingue entre los distintos significados o contextos en los que aparece este término: programas para diseñar ontologías, información docente, empresas que anuncian su Web, etc. La Web actual tampoco permite automatizar procesos, como por ejemplo, buscar un seminario sobre ingeniería de ontologías, hacer la reserva de la plaza, consultar los medios de transporte disponibles hasta la ciudad donde se celebra el evento, reservar el pasaje y conseguir un plano de dicha ciudad. Aún utilizando el más potente de los buscadores, se pierde muchas horas navegando por los resultados obtenidos tras la consulta, para solamente acceder a la información de forma manual, cuando esto lo podría hacer fácilmente un programa informático o un agente inteligente.

La Web semántica viene a ser una extensión de la Web actual dotada de significado, esto es, un espacio donde la información tiene un significado bien definido, de manera que pudiera ser interpretada tanto por agentes humanos como por agentes computarizados La Web semántica se encuentra dotada de mayor significado en la que cualquier usuario en Internet puede encontrar respuestas a sus preguntas de forma más rápida y sencilla gracias a una información definida de mejor manera. Se pueden obtener soluciones a problemas habituales en la búsqueda de información gracias a la utilización de una infraestructura común, mediante la cual, es posible compartir, procesar y transferir información de forma sencilla. La Web semántica tiene como objetivo crear un medio universal para el intercambio de información basado en representaciones del significado de los recursos de la Web, de una manera inteligible para las máquinas. Con ello se pretende ampliar la interoperabilidad entre los sistemas informáticos y reducir la mediación de operadores humanos en los procesos inteligentes de flujo de información. La web semántica rescata la noción de ontología del campo de la inteligencia artificial como vehículo para cumplir este objetivo. Una ontología contiene definiciones que proporcionan un vocabulario para referirse a un determinado área de conocimiento, a un conjunto de conceptos que se especifican en lenguaje natural con el objetivo de crear un idioma común para intercambiar información. Ese vocabulario se define mediante un conjunto de términos básicos y relaciones entre dichos términos, así como las reglas que combinan los términos y las relaciones que permiten ampliar las definiciones dadas en el vocabulario. Por tanto, una ontología es una forma de ver el mundo, ya que determina los términos a utilizar para describir y representar un determinado área de conocimiento, haciendo énfasis en la compartición del conocimiento y el consenso en la representación de éste.

Una de las primeras preguntas que se debe responder es cómo encaja la Web semántica con la actual, es decir, cómo accederá el usuario a la Web semántica, y sobre todo, cómo hacer la transición de la Web actual a la Web semántica. Para que la Web semántica pueda realizarse es importante que guarde, al menos al principio, una compatibilidad con la tecnología actual. Es deseable que se mantenga el lenguaje de marcado de hipertexto u otros lenguajes compatibles con los navegadores actuales, como vehículo de comunicación con el usuario. La asociación entre las instancias de la web semántica y el código del lenguaje de marcado de hipertexto se puede establecer mediante distintos mecanismos. Una de las formas posibles consiste en conservar los documentos actuales, y crear las instancias asociadas anotando su correspondencia con los documentos. Esta posibilidad es la más viable cuando se parte de un gran volumen de material antiguo. Otra forma consiste en generar dinámicamente aplicaciones Web a partir de ontologías y sus instancias. Esta última opción puede resultar factible cuando los documentos antiguos ya se estaban generando automáticamente a partir de una base de datos.

La transición de la Web actual a la Web semántica puede implicar un costo altísimo si se tiene en cuenta el volumen de contenidos que ya forman parte de la Web. Crear y poblar las ontologías supone un esfuerzo extra que puede resultar tedioso cuando se agregan nuevos contenidos, pero directamente prohibitivo en lo que respecta a integrar los miles de gigabytes de contenidos antiguos. Las estrategias más viables combinan una pequeña parte de trabajo manual con la automatización del resto del proceso. Las técnicas para la automatización incluyen, entre otras, la correspondencia de la estructura de las bases de datos a ontologías, el aprovechamiento, previa conversión, de los metadatos y estándares de clasificación presentes en la Web y fuera de ella, además de la extracción automática de los metadatos a partir de texto y recursos multimedia. Otra dificultad importante a la hora de realizar la web semántica en la práctica, es la de consensuar ontologías en una comunidad, por poco amplia que sea. Converger a una representación común es una labor más compleja de lo que puede parecer, ya que cada parte del sistema conlleva, típicamente, ciertas peculiaridades necesarias, y un punto de vista propio que a menudo necesita incidir en la propia ontología. La representación del mundo no es neutra respecto al uso que se le va a dar: tanto un dietista como un biólogo tienen el conocimiento suficiente sobre las plantas, pero la representación que pueden hacer de esa materia es muy distinta, y probablemente no será adecuada imponer la misma representación para ambas perspectivas. Las vías para salvar esta dificultad consisten en compartir ontologías para las áreas comunes en que puede tener lugar una interacción o intercambio de información entre las partes, y establecer formas de compatibilidad con las ontologías locales, mediante extensión y especialización de las ontologías genéricas, o por correspondencia y exportación entre ontologías.

La forma en la que se procesará esta información no sólo será en términos de entrada y salida de parámetros sino en términos de su significado. La Web Semántica como infraestructura basada en metadatos aporta un camino para razonar en la Web, extendiendo así sus capacidades. No se trata de una inteligencia artificial mágica que permite a las máquinas entender las palabras de los usuarios, es sólo la habilidad de una máquina para resolver problemas bien definidos, a través de operaciones bien definidas que se llevan a cabo sobre datos existentes bien definidos. Para obtener esa adecuada definición de los datos, la Web Semántica utiliza los estándares RDF y OWL, estos ayudan a convertir la Web en una infraestructura global en la que es posible compartir, y reutilizar datos y documentos entre diferentes tipos de usuarios. RDF proporciona información descriptiva simple sobre los recursos que se encuentran en la Web y que se utiliza, por ejemplo, en catálogos de libros, directorios, colecciones personales de música, fotos, eventos, etc. OWL es un mecanismo para desarrollar temas o vocabularios específicos en los que asociar esos recursos.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 24 de 2009

viernes, 20 de noviembre de 2009

Ingeniería de diseño del software

La ingeniería del diseño hace referencia al arte de aplicar los conocimientos científicos en la ordenación de los elementos básicos, tangibles e intangibles, de un objeto o estructura con el fin de aumentar su belleza o utilidad. El término diseño admite varias significados. Así, el “diseño” puede ser una actividad, la “actividad de diseñar”, puede ser un producto, el “resultado de la actividad de diseñar”, o puede ser un calificativo, y en este sentido es muy común referirse a un objeto como “de diseño”, cuando aporta una geometría, una forma o unas cualidades diferenciadoras que implican un aire de calidad y distinción. El término “diseño” se deriva de “diseñar”, que a su vez tiene su origen en el latín, designare, que en origen significa en trazar y también dibujar, marcar o designar. De hecho, la primera acepción del término diseño, en español, es “traza o delineación de una figura o un edificio”. Pero el término admite también un significado amplio: “ordenación de los elementos básicos, tangibles e intangibles, de un objeto o estructura con el fin de aumentar su belleza o utilidad”.

Se debe notar que, de acuerdo con esta significación, el diseño aborda los “elementos básicos”, esto es, los más relevantes o fundamentales. La ordenación de los detalles correspondería a una parte del “diseño”, que sería el “diseño detallado”. También se debe apuntar que el diseño no conlleva necesariamente unas tareas de “cálculo” o de “dimensionamiento preciso”, tareas que sí formarían parte de un diseño detallado o de las propias de una ingeniería. Para completar la idea, el término “ingeniería” proviene del latín ingenium y se define como: “el arte de aplicar los conocimientos científicos a la invención, utilización o perfeccionamiento de la técnica en todas sus determinaciones”. Por consiguiente se puede decir que la ingeniería del diseño es la representación o modelo del software, que proporciona datos sobre la estructura de los datos, la arquitectura, las interfaces, los procedimientos, etc., normalmente este tipo de ingeniería es utilizada por los ingenieros del software. Esta fase es importante ya que de aquí se extraen o establece la calidad del software y se pueden hacer las mejoras pertinentes, si es necesario, sin invocar a pruebas o al cliente.

El diseño de software se define como el proceso de aplicar ciertas técnicas y principios con el propósito de definir un dispositivo, un proceso o un sistema, con suficientes detalles que permitan su interpretación y realización física. El diseño del software desde un punto de vista operativo incluye cuatro etapas: (1) El diseño de los datos. Trasforma el modelo de dominio de la información, creado durante el análisis, en las estructuras de datos necesarios para implementar el Software. (2) El diseño arquitectónico. Define la relación entre cada uno de los elementos estructurales del programa. (3) El diseño de la interfaz. Describe como se comunica el software consigo mismo, con los sistemas que operan junto con él y con los operadores y usuarios que lo emplean. (4) El diseño de procedimientos. Transforma elementos estructurales de la arquitectura del programa. La importancia del diseño del software se puede definir en una sola palabra “calidad”, dentro del diseño es donde se fomenta la calidad del proyecto. El diseño es la única manera de materializar con precisión los requerimientos del cliente, siendo un proceso y un modelado a la vez. El proceso de diseño es un conjunto de pasos repetitivos que permiten al diseñador describir todos los aspectos del sistema a construir.

A lo largo del diseño se evalúa la calidad del desarrollo del proyecto con un conjunto de revisiones técnicas: (1) El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acumular todos los requisitos implícitos que desea el cliente. (2) Debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el software. (3) El diseño debe proporcionar una completa idea de lo que es el software, enfocando los dominios de datos, funcional y comportamiento desde el punto de vista de la Implementación.

Para evaluar la calidad de una presentación del diseño, se deben establecer criterios técnicos para un buen diseño como son: (1) Un diseño debe presentar una organización jerárquica que haga un uso inteligente del control entre los componentes del software. (2) El diseño debe ser modular, es decir, se debe hacer una partición lógica del Software en elementos que realicen funciones y sub-funciones especificas. (3) Un diseño debe contener abstracciones de datos y procedimientos. (4) Debe producir módulos que presenten características de funcionamiento independiente. (5) Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los módulos y el entorno exterior. (6) Debe producir un diseño usando un método que pudiera repetirse según la información obtenida durante el análisis de requisitos de Software. Estos criterios no se consiguen por casualidad. El proceso de diseño del software exige buena calidad a través de la aplicación de principios fundamentales de diseño, metodología sistemática y una revisión exhaustiva.

Cuando se diseña un sistema computacional se debe tener presente que el proceso de un diseño incluye, concebir y planear algo en la mente, así como hacer un dibujo o modelo o croquis. Para el diseño del producto software debe realizarse los siguientes diseños: (1) Diseño de la salida. En este caso la salida se refiere a los resultados e información generada por el sistema. Para la mayoría de los usuarios la salida es la única razón para el desarrollo de un sistema y la base de evaluación de su utilidad. (2) Diseño de archivos. En este punto se incluye decisiones con respecto a la naturaleza y contenido del propio archivo, como si se fuera a emplear para guardar detalles de las transacciones, datos históricos, o información de referencia. (3) Diseño de interacciones con la base de datos. La mayoría de los sistemas de información ya sean implantado en sistemas de cómputos grandes o pequeños, utilizan una base de datos que puede abarcar varias aplicaciones, por esta razón estos sistemas utilizan un administrador de base de datos, en este caso el diseñador no construye la base de datos sino que consulta a su administrador para ponerse de acuerdo en el uso de esta en el sistema.

Por otra parte, existen cuatro indicios principales que indican que el software cuenta con un mal diseño, los mismos no son independientes y están relacionados unos con otros, estos indicios son: (1) Rigidez. Es la tendencia del software a ser difícil de cambiar, incluso en las cosas más sencillas. Cada cambio produce una cascada de cambios en módulos dependientes. Lo que parecía un cambio de dos días en un módulo resulta ser varias semanas de cambios de módulos a través de la aplicación. El miedo del gestor puede llegar a ser tan agudo que se niegue a realizar modificaciones en la aplicación. (2) Fragilidad. La fragilidad es la tendencia que tiene el software a romperse por muchos sitios cada vez que se cambia algo. Muchas de las roturas ocurren en sitios que no están relacionados conceptualmente con el área que se está cambiando. Cada vez que los gestores autorizan un cambio tienen miedo de que el programa se rompa por algún lugar inesperado. (3) Inmovilidad. La inmovilidad es la resistencia del software a ser reutilizado en otros proyectos o parte de otros proyectos. Pasa muchas veces que un programador descubre que necesita un módulo que es muy parecido a otro que ha desarrollado otro programador. Sin embargo, también pasa muchas veces que el módulo en cuestión depende demasiado de la aplicación en la que está integrado. Después de mucho trabajo los desarrolladores descubren que el trabajo necesario para separar las partes reutilizables de las partes no reutilizables es demasiado alto. Y entonces el software simplemente se reescribe en vez de ser reutilizado. (4) Viscosidad. La viscosidad del diseño es la dificultad de mantener la filosofía del diseño original. Cuando se afronta un cambio los programadores encuentran normalmente más de una manera de realizarlo. Algunas de estas formas preservan la filosofía del diseño y otras no. Estos cuatro síntomas son reveladores de un diseño de arquitectura pobre. Cualquier aplicación que muestra estos síntomas adolece de un diseño pobre.

Finalmente las causas principales para que el diseño se deteriore son las siguientes: (1) Requisitos cambiantes. La causa de la degradación del diseño es muy conocida. Los requisitos han ido cambiando de manera que no estaba previsto en el diseño inicial. A menudo los cambios necesitan hacerse rápidamente y hechos por programadores que no están familiarizados con el diseño original. Entonces, aunque los cambios funcionan, violan el diseño original. Poco a poco los cambios continúan y las violaciones se acumulan hasta que el diseño se rompe. (2) Control de dependencias. Los cambios que introducen nuevas e imprevistas dependencias hacen que un diseño se deteriore. Para anticiparse a la degradación de las dependencias del diseño de la arquitectura, deben ser controladas las dependencias entre módulos de una aplicación. Este control consiste en la creación de "cortafuegos" de dependencias. A través de estos cortafuegos las dependencias no se propagan. El diseño orientado a objetos está repleto de principios y técnicas que permiten construir estos cortafuegos y controlar estas dependencias.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 17 de 2009

viernes, 13 de noviembre de 2009

Olfato artificial

Los seres vivos son máquinas complejas, dotadas de una gran variedad de instrumentos de medición, de análisis, de recepción de estímulos y de reacción y respuesta. Los cinco sentidos, esas ventanas que conectan a las personas con el mundo exterior, y a través de las cuales se percibe importante información sobre todo cuanto rodea a las personas, permiten ejercer capacidades de selección autónomas en el proceso de la información. Así, a un ser humano no le cuesta ningún esfuerzo identificar y evaluar las cosas por medio de sus percepciones sensoriales en combinación con su memoria. De los cinco sentidos de las personas, la vista, el oído y el olfato, trabajando por separado o en combinación constituyen literalmente la única conexión de los seres humanos con el mundo, una conexión que se erige como el gran misterio a desvelar por la ciencia actual.

Crear máquinas que se parezcan a cerebros humanos, capacitadas para observar un comportamiento inteligente, es el campo de investigación de la robótica y la inteligencia artificial. Dentro de ese comportamiento inteligente se encuentran tanto las actividades relacionadas con el raciocinio, es decir, planeamiento y estrategia, como con la percepción y reconocimiento de imágenes, sonidos, olores, etc. De este modo, las llamadas tecnologías bioinspiradas nacen de la aplicación de conceptos de inspiración biológica al diseño de sistemas analíticos. El objetivo, en suma, es comprender e imitar la forma en que los sistemas biológicos aprenden y evolucionan. Para diseñar estos sistemas, además de utilizar la computación tradicional numérico-simbólica, se usan otras metodologías tales como las redes neuronales artificiales, la lógica difusa y la computación evolutiva. Por ello, este intento de emulación del funcionamiento de los seres vivos se debe apoyar en un entorno multidisciplinar que agrupe a profesionales químicos, físicos, informáticos, electrónicos, microelectrónicos y a otros de áreas de la ingeniería, como la biomédica o la neuromórfica, aspirando a conseguir auténticos sistemas electrónicos dotados de sentidos artificiales que permitan facilitar un sinfín de tareas y resolver problemas hasta ahora no resueltos.

Aunque no tan desarrollados como los sistemas inteligentes de visión y de reconocimiento de voz, los sistemas bioinspirados comprenden también los dispositivos conocidos como narices y lenguas electrónicas que se empezaron a investigar en la década de los ochenta. El olfato humano está dotado de decenas de millones de receptores y, aunque tiene una cierta limitación, la capacidad para distinguir olores es muy elevada siendo, además, sujeta a un proceso de aprendizaje por medio del refinamiento. Estos receptores generan una especie de códigos olfativos para una gran variedad de olores que son transmitidos y almacenados en el cerebro. Por otro lado, el olor está constituido por una multitud de compuestos gaseosos con propiedades distintas, lo que añade aún más dificultades al proceso de imitación de la capacidad olfativa humana.

La llamada nariz electrónica está formada por una red de sensores químicos que detecta esos compuestos gaseosos y los identifica a través de un sistema inteligente que trata las señales y deduce las características del olor medido. En el tratamiento de los datos intervienen distintos elementos, como el análisis estadístico de los olores, correlación con los datos de la emisión y discriminación de los diferentes olores. En la actualidad, tanto los mecanismos de captación de muestras, los sensores o hardware del sistema, como el software encargado de transformar las señales captadas, programas con capacidad de aprendizaje basados en redes neuronales y lógica difusa, están lo suficientemente evolucionados para que las narices electrónicas tengan ya aplicaciones en una amplia variedad de sectores y sean comercializadas por un buen número de compañías.

Los orígenes de la nariz electrónica se remontan a los años 1960, cuando la compañía Bacharac Inc., construyó un dispositivo conocido con el nombre de Sniffer, el cual constaba de un solo sensor de gas y por lo tanto, no se consideró como una nariz electrónica propiamente dicha. En la década de los años 1980, surgen dos grupos de investigadores, en la Universidad de Warwick en Gran Bretaña y en el Laboratorio Nacional Argonne de los Estados Unidos. Krishna Persaud y George Dodd, realizaron la primera publicación relacionada con las narices electrónicas el año 1982, orientaron sus estudios en entender los procesos del olfato biológico, utilizando un conjunto de sensores semiconductores de óxidos metálicos, y luego ampliaron su investigación a sensores basados en polímeros conductores, mientras que, el otro grupo propuso un aparato para detectar, identificar y medir una amplia variedad de productos químicos y mezclas transportadas por ferrocarriles, barcos y camiones. Posteriormente en Japón se comenzó a investigar la frescura de los pescados utilizando matrices de sensores semiconductores de óxido metálico. Por lo tanto, en los tres continentes se inició el desarrollo de la tecnología de matrices de sensores olfativos aproximadamente en los años 1980. Es precisamente en esta época cuando el concepto de nariz electrónica como sistema inteligente aparece realmente. Una de sus primeras y más populares definiciones es la que establecen Gardner y Barlett el año 1999: “Instrumento que comprende una agrupación de sensores químicos con sensibilidades parcialmente solapadas junto a un sistema de reconocimiento de patrones, capaz de analizar y reconocer aromas simples o complejos”.

La idea misma de nariz electrónica se base en intentar imitar el sentido de olfato de los humanos, usando una matriz de sensores de gases que simula los receptores en la nariz y unos algoritmos de procesamiento de señales que intentan simular el funcionamiento del cerebro en la tarea de reconocer y cuantificar olores. De todos modos, hay que reconocer que hoy en día la realidad de narices electrónicas se aleja bastante del sistema biológico del olfato, uno de los sistemas más complejos del organismo humano. El sentido del olfato es uno de los más antiguos y primitivos de los sentidos, pero nadie sabe todavía con exactitud cómo funciona. Lo que sí se sabe, es que en seres humanos el sistema olfativo es controlado por cerca de cuatrocientos genes, y en perros con cerca de mil genes, lo que es testamento de su complejidad. Hasta ahora, la barrera principal para estudiar el sentido del olfato es la capacidad de crear suficientes receptores artificiales, y poder purificarlos para asegurarse de su homogeneidad, pero ahora, gracias al avance realizado en el Instituto Tecnológico de Massachusetts, este paso ahora es posible lo que abre las puertas a un torrente de investigaciones que sin duda traerán narices artificiales de un nivel inimaginable.

Una “nariz electrónica” es un instrumento que puede oler, es decir, es capaz de realizar análisis cualitativos o cuantitativos de una mezcla de gases, vapores y olores. La nariz electrónica es un instrumento de olfato artificial que permite distinguir y reconocer aromas utilizando sensores de gas. Un dispositivo de este tipo tiene al menos cuatro partes con diferentes funciones: la primera realiza la adecuación de la mezcla gaseosa y el muestreo, el conjunto de sensores de gas hace la detección, la electrónica de control se dedica a la gestión del conjunto de sensores y adecuación de la señal, y finalmente, la computadora, con adecuados algoritmos de clasificación de patrones, extrae los rasgos característicos o “huellas” de cada aroma y presenta los resultados en la interfaz con el usuario.

En la práctica, el proceso de identificación de olores comprende tres estados durante el muestreo del olor: el primero es de limpieza de la cámara de medición y sensores mediante enjuagues realizados con “aire limpio” para barrer las moléculas de mediciones anteriores, el segundo es la toma de la muestra, en la que se reciben en la cámara cantidades controladas de “aire con olor” exponiendo a los sensores al mismo, y finalmente, un segundo enjuague de la cámara y sensores con “aire limpio” previo a la próxima toma de muestras. Es necesaria la estabilización térmica de la muestra y de la cámara en todas estas etapas. Del mismo modo, debido a que la humedad afecta tanto la medición como la muestra misma, sólo se deben comparar resultados tomados en condiciones de humedad y temperatura normalizadas.

Parece ser que pasar de la percepción de olores a la emisión de los mismos por parte de dispositivos es sólo cuestión de tiempo, ya que muy pronto la computadora conectada a Internet empezará a emitir olores. Esa es al menos la propuesta de varias empresas, como DigiScents, TriSenx o AromaJet, que trabajan en la “digitalización” de los aromas. Para conseguir su objetivo se basan en tecnologías bastante similares a las narices electrónicas, es decir, haciendo uso de los mismos elementos: sensores, análisis de datos, etc. con la salvedad de que la computadora deberá ir provista de una paleta de esencias para identificar el olor emitido.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 10 de 2009

viernes, 6 de noviembre de 2009

Minería de datos predictiva

La minería de datos consiste en la extracción no trivial de información que reside de manera implícita en los datos. Dicha información, previamente desconocida, puede resultar útil para algún proceso no previsto hasta ese entonces. En otras palabras, la minería de datos prepara, sondea y explora los datos para sacar la información oculta en ellos. Bajo el nombre de minería de datos se engloba todo un conjunto de técnicas encaminadas a la extracción de conocimiento procesable, implícito en las bases de datos. Está fuertemente ligado con la supervisión de procesos industriales ya que resulta muy útil para aprovechar los datos almacenados en grandes bases de datos. Los fundamentos de la minería de datos se encuentran en la inteligencia artificial y en el análisis estadístico. Mediante los modelos extraídos utilizando técnicas de minería de datos se aborda la solución a problemas de predicción, clasificación y segmentación.

El proceso de minería de datos se compone de las siguientes fases: (1) Selección y preprocesado de datos. El formato de los datos contenidos en la fuente de datos (base de datos, Data Warehouse) nunca es el idóneo y la mayoría de las veces no es posible ni siquiera utilizar ningún algoritmo de minería sobre los datos "en bruto". (2) Mediante el preprocesado se filtran los datos, de forma que se eliminan valores incorrectos, no válidos y desconocidos, según las necesidades y el algoritmo que va a usarse, se obtienen muestras de los mismos, en busca de una mayor velocidad de respuesta del proceso, o se reduce el número de valores posibles, mediante redondeo, agrupamiento u otras técnicas. (3) Selección de variables. Aún después de haber sido preprocesados, en la mayoría de los casos se tiene una cantidad ingente de datos. La selección de características reduce el tamaño de los datos eligiendo las variables más influyentes en el problema, sin apenas sacrificar la calidad del modelo de conocimiento obtenido del proceso de minería. Los métodos para la selección de características son básicamente dos, aquellos basados en la elección de los mejores atributos del problema y aquellos que buscan variables independientes mediante pruebas de sensibilidad, algoritmos de distancia o heurísticos. (3) Extracción de conocimiento. Mediante una técnica de minería de datos, se obtiene un modelo de conocimiento, que representa patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociación entre dichas variables. También pueden usarse varias técnicas a la vez para generar distintos modelos, aunque generalmente cada técnica obliga a un preprocesado diferente de los datos. (4) Interpretación y evaluación. Una vez obtenido el modelo, se debe proceder a su validación comprobando que las conclusiones que arroja son válidas y suficientemente satisfactorias. En el caso de haber obtenido varios modelos mediante el uso de distintas técnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos.

La minería de datos es un mecanismo de explotación consistente en la búsqueda de información valiosa en grandes volúmenes de datos. Está ligada a las bases de datos que proporcionan la información histórica de las instituciones mediante los algoritmos de minería de datos donde se obtiene la información necesaria para ayudar a la toma de decisiones. La minería de datos puede ser dividida en: (1) Minería de datos predictiva, la cual utiliza primordialmente técnicas estadísticas. (2) Minería de datos para descubrimiento de conocimiento, la que utiliza principalmente técnicas de inteligencia artificial. En los últimos años, se ha desarrollado un amplio abanico de técnicas estadísticas y computacionales para la minería de datos. Se pueden destacar las siguientes técnicas de la minería de datos predictiva: (1) Análisis factorial descriptivo. Cubre las técnicas de análisis de componentes principales, análisis de correspondencias, análisis factorial. Permite analizar la estructura de los datos y proporcionan herramientas de visualización. (2) Técnicas de clasificación. Cubren las técnicas de algoritmo de las k-medias, algoritmo de clasificación jerárquica. Agrupan individuos o variables en clases que muestran un comportamiento homogéneo y, por lo tanto, permiten descubrir patrones de comportamiento. (3) Técnicas de regresión. Comprende entre otras a los árboles de regresión y las redes neuronales. Están principalmente orientadas a la predicción de una variable de interés a partir de un conjunto de variables de regresión. (4) Reglas de asociación y de secuenciación Analizan los datos para descubrir reglas que identifiquen patrones o comportamientos y utilizan algoritmos computacionalmente intensivos. Son técnicas que se han utilizado en el análisis de la cesta de la compra. (5) Técnicas de escalamiento multidimensional. Analizan los datos a partir de una matriz de proximidades, dónde dicha proximidad se define como un índice de similitud entre dos ítems cualesquiera. Se utilizan en los campos de la psicometría y del marketing.

Para soportar el proceso de minería de datos, el usuario dispone de una extensa gama de técnicas para el análisis estadístico, que le pueden ayudar en cada una de las fases de dicho proceso. Algunas herramientas son: (1) ANOVA o Análisis de la Varianza. Contrasta si existen diferencias significativas entre las medidas de una o más variables continuas en grupo de población distintos. (2) Regresión. Define la relación entre una o más variables y un conjunto de variables de predicción de las primeras. (3) Ji cuadrado. Contrasta la hipótesis de independencia entre variables. (4) Componentes principales. Permite reducir el número de variables observadas a un menor número de variables artificiales, conservando la mayor parte de la información sobre la varianza de las variables. (5) Análisis de agrupación. Permite clasificar una población en un número determinado de grupos, con base en semejanzas y desemejanzas de perfiles existentes entre los diferentes componentes de dicha población. (6) Análisis discriminante. Es un método de clasificación de individuos en grupos que previamente se han establecido, y que permite encontrar la regla de clasificación de los elementos de estos grupos, y por tanto identificar cuáles son las variables que mejor definen la pertenencia al grupo.

La minería de datos principalmente se utiliza para segmentar los datos, calificarlos y luego utilizar esa información para predecir el comportamiento de datos nuevos. A partir de los datos analizados con minería de datos se pueden construir modelos, llamados predictivos, que muestran el comportamiento o los patrones de los datos. Las estructuras de datos denominadas “árboles” permiten visualizar como se encuentran clasificados los datos en grandes almacenes y bases de datos. La minería de datos es un proceso analítico diseñado para explorar datos, usualmente grandes cantidades de datos, en búsqueda de patrones consistentes o relaciones sistemáticas entre variables, y luego para validar los hallazgos aplicados aplicando los patrones detectados a nuevos subconjuntos de datos. Uno de los objetivos principales de la minería de datos es la predicción, y la minería de datos predictiva es el tipo más común y uno de los que tiene bastante aplicación en procesos de toma de decisiones. En la práctica, los métodos de la minería de datos más utilizados caen dentro de la categoría de “tipo de conocimiento a extraer”. Las técnicas de minado de datos pertenecientes a esta categoría buscan hacer predicción o descripción de un fenómeno determinado. La predicción implica utilizar algunas variables o campos de una base de datos para predecir valores desconocidos o futuros de otras variables de interés, mientras que la descripción está enfocada a encontrar patrones humano-interpretables que describen los datos. Aunque las fronteras entre la predicción y la descripción no sean muy marcadas, parte de los modelos predictivos pueden ser descriptivos, al grado de que estos sean entendibles, y viceversa, la distinción es útil para entender la meta general de la extracción de conocimiento. La importancia relativa de la predicción y la descripción para aplicaciones particulares de minando datos puede variar considerablemente. Las metas de la predicción y la descripción se pueden lograr utilizando una variedad de métodos particulares de la minería de datos.

La clasificación y la predicción son dos formas de análisis de datos que pueden ser usadas para extraer modelos que describen importantes clases de datos o predicen valores futuros. En la clasificación de datos se desarrolla una descripción o modelo para cada una de las clases presentes en la base de datos. Existen muchos métodos de clasificación tales como los árboles de decisión, los métodos estadísticos, las redes neuronales, y los conjuntos difusos, entre otros. La predicción puede ser vista como la construcción y uso de modelos para evaluar las clases de una muestra sin clasificaciones, o para evaluar el valor, o rango de valores, que un atributo debería de tener para una muestra determinada. En el primer caso se dice que se está haciendo una clasificación de los datos, mientras que en el segundo, se dice que se está haciendo una predicción de valores, en otras palabras, la clasificación se refiere a predecir valores discretos o nominales, mientras que la predicción, propiamente dicha, se refiere al pronóstico de valores continuos.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Agosto 2 de 2009