Agregue XML como una herramienta de minería de datos

Profundice en el rol de XML en la minería de datos con consejos y técnicas sobre cómo usarlo

Examine el uso y la función de XML en la minería de datos. Obtenga consejos y técnicas que utilizan XML para reconocimiento de patrones, detección de cambios, búsqueda y detección de similitudes, anotación de datos, y semántica.

J. Jeffrey Hanson, CTO, Max International

Photo of Jeff HansonJeff Hanson tiene más de 20 años de experiencia como ingeniero y arquitecto de software, y es el CTO de Max International. Jeff ha escrito muchos artículos y libros, incluyendo Mashups: Strategies for the Modern Enterprise. usted puede contactar a Jeff enjjeffreyhanson@gmail.com.


Nivel de autor contribuyente en developerWorks

12-07-2011

Acrónimos de uso frecuente

  • API: Application programming interface
  • HTML: Hypertext Markup Language
  • XML: Extensible Markup Language

La minería de datos es el proceso de aplicar algoritmos a los datos para descubrir patrones que coincidan con un contexto o consulta dados. Por muchos años, las organizaciones han utilizado minería de datos para analizar volúmenes de datos, para poder predecir comportamientos, producir informes significativos, superar a la competencia, y demás.

La proliferación de datos estructurados y semiestructurados a lo largo de la web ha aumentado la necesidad de minería, almacenamiento y procesamiento inteligentes de datos. Grandes conjuntos de datos con complejidad creciente han empujado a las técnicas tradicionales de minería de datos hacia nuevos niveles de demanda de procesamiento. Hacer minería de datos desde la web incluye aplicar estructura a información que es presentada de forma típica en un formato semiestructurado en el mejor caso.

Visión general de la minería de datos

La minería de datos busca extraer patrones de grandes conjuntos de datos utilizando, entre otras cosas, métodos estadísticos, inteligencia artificial y técnicas estándar de administración de bases de datos.

A medida que la capacidad de almacenamiento y la potencia de procesamiento aumentan, y que la capacidad de los dispositivos para conectarse se torna omnipresente, la importancia de la minería de datos se hace más evidente. Las organizaciones buscan lograr ventaja competitiva a mientras se esfuerzan por transformar cantidades extraordinarias de datos en conocimiento de negocios valioso. Este conocimiento conduce a ventajas y avances en ciencia, marketing, prevención de fraudes, vigilancia y otras áreas. Los beneficios alcanzados mediante la minería de datos están creando un crecimiento pronunciado en la demanda de técnicas, tecnologías y soluciones para minería de datos más efectivas. Las soluciones efectivas incluyen técnicas y tecnologías optimizadas para extraer, filtrar y transformar datos. Los datos transformados luego se ponen a disposición para su uso a través de servicios web, sistemas de mensajería, y demás.

La minería de datos normalmente involucra algunas tareas estándar que incluyen agrupación en clúster, clasificación, regresión y el aprendizaje de reglas asociado.

Agrupación en clúster

Agrupación en clúster, en el contexto de la minería de datos, se refiere al intento de descubrir sub-grupos similares (clústeres) de datos, insertados dentro de datos no estructurados o semiestructurados. La Tabla 1 lista y describe algunos tipos típicos de agrupación en clúster para minería de datos.

Tabla 1. Tabla 1. Tipos típicos de agrupación en clúster para minería de datos
Tipo de agrupación en clústerDescripción
Basada en cuadrículaUtiliza umbrales para descubrir matrices o "celdas" de datos que están combinados para formar clústeres
JerárquicaIncluye encontrar grupos sucesivos o clústeres de datos usando clústeres detectados previamente, para producir una jerarquía de clústeres que va de pequeño a grande
Basadas en ubicación o en distanciaIncluye métodos para descubrir clústeres de datos con base en ubicaciones físicas o virtuales
ParticionalDivide los objetos de datos recursivamente en un número arreglado de clústeres

Clasificación

La Clasificación pretende catalogar los datos de acuerdo a una taxonomía u organización precedente como por altura, color, etc. Uno de los usos más comunes de la clasificación es identificar spam o correo no deseado vs. correo deseado.

Regresión

La Regresión en la minería de datos es un método estadístico que busca hacer ciertas predicciones sobre los datos. Por ejemplo, usted puede predecir el valor de una casa con base en la ubicación, el número de habitaciones, el área, etc. Usando datos cuantitativos, se desarrollan fórmulas y luego se aplican a los datos subsecuentes para hacer predicciones. La regresión es usada comúnmente para hacer pronósticos.

El Aprendizaje de reglas de asociación

El Aprendizaje de reglas de asociación busca relaciones entre objetos de datos para hacer predicciones, posicionar productos, etc. Por ejemplo, una tienda de verduras puede usar una regla de asociación para predecir los hábitos de compra del consumidor al determinar que cada vez que un cliente compra perros calientes, panes y carbón, normalmente el cliente también compra platos de papel.


Visión general de XML

XML es un lenguaje de marcación basado en texto que usted puede usar para estructurar datos en diferentes dialectos. Los dialectos XML normalmente son refinados por esquemas que usted puede referenciar externamente o insertar dentro de un documento XML. La mayoría de los lenguajes de programación proporcionan alguna forma de soporte para manipular documentos XML.

XML es un subconjunto del Standard Generalized Markup Language (SGML) y está diseñado para proporcionar meta-información sobre el contenido de un documento XML dado. XML almacena datos independientes del hardware o del software en un formato de texto plano. Estos atributos han hecho de XML uno de los formatos más ubicuos para comunicar y compartir información entre aplicaciones y sistemas en la web.

Los dialectos basados en XML se utilizan bastante par propósitos de minería de datos. La Tabla 2 lista y describe algunos de los dialectos más comunes utilizados en la minería de datos.

Tabla 2. Tabla 2. Dialectos XML para la minería de datos
DialectoDescripción
CWM-DMLa especificación Common Warehouse Model for Data Mining (CWM-DM) busca definir meta-datos para minería de datos como la descripción de un modelo, configuraciones de algoritmo y atributos. Los modelos CWM-DM son documentos XML generados usando herramientas y aplicaciones de Unified Modeling Language (UML).
PMMLEl Predictive Model Markup Language (PMML) es un dialecto XML para definir modelos estadísticos y de minería de datos que puedan compartirse entre servicios y aplicaciones que cumplan con el PMML. El PMML permite que servicios y aplicaciones heterogéneos manipulen modelos de minería de datos de forma estándar. Un documento PMML consiste de elementos como un encabezado, un diccionario de datos, correlacionadores de transformación de datos, la definición del modelo, un esquema de minería, objetivos post-procesamiento y campos de resultado.
XMLALa especificación XML for Analysis (XMLA) define interfaces XML que usan SOAP para proporcionar acceso a datos analíticos desde diferentes fuentes usando dos métodos: discover y execute. El XMLA está dirigido explícitamente hacia minería de datos y procesamiento analítico on-line (OLAP).
XPathEl XML Path Language (XPath) es un mecanismo común usado para referirse a elementos y datos dentro de un documento XML. Este tiene algunas similitudes con los mecanismos usados para navegar jerarquías de sistemas de archivos.
XQLEl XML Query Language (XQL) es un lenguaje de consulta diseñado específicamente para datos XML, similar a usar Structured Query Language (SQL) como el lenguaje para datos relacionales.

Representando datos semiestructurados usando XML

Datos semiestructurados son los datos con alguna forma de estructura per que no tienen la suficiente como para encajar con gracia en un modelo relacional. Los datos semiestructurados generalmente contienen etiquetas u otros elementos para separar semánticamente elementos relacionados que impliquen algunos detalles sobre los datos asociados. HTML representa una forma común de datos semiestructurados. Los datos semiestructurados, principalmente en la forma de HTML, están haciendo posibles nuevos prospectos para minería de datos desde la web.

XML es capaz de representar tanto datos tabulares como jerárquicos. XML también es rico en meta-datos insertados y otras entidades descriptivas como esquemas y Document Type Definitions (DTDs). XML puede representar datos como estructuras simples o como estructuras elaboradas y complejas. Estos atributos hacen de los dialectos XML los vocabularios principales para representar datos semiestructurados.

El XML, por diseño, casi obliga a los servicios o aplicaciones a aplicar estructura a los datos. Este hecho conduce a los mecanismos para minería de datos para que impliquen semántica a los datos que se están procesando, para definir un modelo de datos útil. El diseñador de datos que utilice un dialecto XML como formato de datos tiene control completo sobre el modelo semántico que define los datos.

XML también presenta suficientes atributos comunes para que servicios y aplicaciones faciliten el acceso genérico a los datos, desde lenguajes y entornos de programación heterogéneos. Este acceso permite al programador o usuario enfocarse en la manipulación y el consumo de datos, más que en los algoritmos y el trabajo de programación necesario para manipular y consumir datos.


Usando XML para extraer información útil de conjuntos de datos semiestructurados

Representar datos semiestructurados como un documento basado en XML requiere un sistema robusto de minería de datos para soportar el consumo, manipulación y resultado de XML. Este requerimiento conduce a que un sistema de minería de datos opere sobre los datos de una forma común.

Los datos semiestructurados representados por XML pueden percibirse como gráficas etiquetadas y dirigidas que contienen un vértice raíz. Los bordes, hojas y otros nodos de una gráfica basada en XML pueden etiquetarse con texto. Cada nodo de la gráfica también puede ser definido por un identificador único.

Considere el ejemplo de un documento XML en el Listado 1 que representa una filmografía.

Listado 1. Listado 1. Ejemplo de un documento
<filmography>
  <director name="Scorsese">
    <year>
      2002
      <film>
        <title>Deuces Wild</title>
      </film>
    </year>
    <year>
      2003
      <film>
        <title>The Soul of a Man</title>
      </film>
      <film>
        <title>The Blues</title>
      </film>
    </year>
  </director>
</filmography>

Usted puede diagramar el documento XML del Listado 1 como la gráfica ilustrada en la Figura 1.

Figura 1. Figura 1. Documento XML como una gráfica dirigida
Documento XML como una gráfica dirigida

Los lenguajes de consulta basados en XML están conformados para alcanzar cualquier posición arbitraria dentro de la "gráfica" de un documento XML usando secuencias de etiquetas de borde y delimitadores que representan una ruta. El listado 2 muestra una expresión de ruta o XPath para el nodo Deuces Wild de la gráfica XML de la Figura 1. La ruta inicia en la etiqueta raíz.

Listado 2. Listado 2. Una expresión XPath simple
/filmography/director[@name="Scorsese"]/year[0]/film/title/text()

Para superar la ambigüedad en documentos XML, use el contexto desde el cual se derivan los datos. Por ejemplo, si una persona busca por director de apellido White y el documento XML contiene una película con el nombreWhite, el contexto definido por la expresión XPath /filmography/director[@name="White"]@name elimina la ambigüedad cuando se compara con la expresión XPath /filmography/director[@name="White"]/year[1]/film[0]/title/text().

Extraer información de fuentes semiestructuradas como documentos HTML de la web normalmente requiere filtrado, conversión y extracción de datos Para cambiar un documento HTML a una forma estructurada, conviértalo en un documento Extensible Hypertext Markup Language (XHTML). Generalmente esto involucra un proceso de filtrado que incluye lógica para agrupar los nodos relacionados por nombre de etiqueta, remover los elementos prohibidos como etiquetas y atributos en desuso, y otros. El siguiente paso es convertir el documento filtrado declarando un elemento raíz html simple, convirtiendo los elementos de etiqueta y los nombres de atributos a minúsculas, agregando etiquetas finales a todas las etiquetas iniciales, agregando atributos alt a etiquetas img , etc.

Usando el proceso filtrado/conversión/extracción descrito antes, usted puede considerar la web como un gran almacén de datos basados en XML. Por lo tanto, usted puede facilitar la extracción de datos de la web usando un lenguaje de consulta para XML como XQuery.

Para extraer y utilizar datos desde un documento XHTML usando XQuery, usted formula una consulta para localizar contenido en el documento, creando nuevas estructuras XML según se necesite y, opcionalmente, creando nuevos documentos XML en conjunto. Localizar los datos en el documento es un ejercicio de reconocimiento de patrones usando expresiones XPath.

El XQuery en el Listado 3 ilustra una expresión XQuery simple para retornar el título de películas del año 2002 del documento XML delListado 1.

Listado 3. Listado 3. Una expresión XQuery para localizar todos los nodos film
for $x in doc("www.example.com/films.xml")/filmography/director
where $x/year="2002"
return $x/year/film/title

Note que usted puede marcar los resultados retornados a partir de un documento XQuery con etiquetas, atributos y otra marcación XML, según lo necesite el consumidor de los resultados. Por ejemplo note el fragmento del Listado 4.

Listado 4. Listado 4. Resultado XQuery marcado
for $x in doc("www.example.com/films.xml")/filmography/director
return
  <director name="{$x[@id]}">
    <other_data>...</other annotated data>
  </director>

En el Listado 4, el resultado retornado por el código XQuery es marcado como un fragmento XML con datos retornados desde la consulta.

Un recurso de XQuery es su capacidad para señalar un documento específico al cual usted puede aplicar una consulta. Usted puede mejorar la expresión XPath /filmography/director[@name="White"]@name en XQuery para aplicarla a un documento específico, como en la expresión XQuery:

doc("www.example.com/films.xml")/filmography/director[@name="White"]@name

De forma similar, usted puede aplicar detección a datos XML usando varias construcciones XQuery para encontrar datos mediante un elemento común como nombre de autor, fuente de los datos, etc. Los métodos más complejos como la ponderación de frecuencia y la normalización de frecuencia van más allá del alcance de este artículo.


Transformando datos relacionales en datos XML

Como se mencionó antes, la estructura de un documento XML es representativa de un árbol jerárquico anidado, con un número de diferentes tipos de nodos como elementos, referencias de entidades, comentarios, etc. El documento sólo puede tener un nodo raíz, que es el primer nodo que se encuentra en el documento.

Una base de datos relacional comprende un conjunto de tablas, que contienen un conjunto de registros o filas. Un registro o fila contiene un conjunto de campos o columnas que contienen datos. Todas las filas de una tabla dada tienen el mismo número de columnas. Por lo tanto, usted puede modelar una base de datos relacional como una estructura XML jerárquica compuesta por un nodo de base de datos que contiene un conjunto de nodos de tabla, que contienen un conjunto de nodos de fila que contienen un conjunto de nodos de columna.

Usted puede modelar una base de datos relacional (filmografía) con una estructura compuesta de una tabla (director), que contiene una fila como documento XML, como en el Listado 5.

Listado 5. Listado 5. Representación XML de una base de datos
<filmography>
  <director>
    <row>
      <name>Scorsese</name>
      <year>
        2002
        <film>
          <title>Deuces Wild</title>
        </film>
      </year>
      <year>
        2003
        <film>
          <title>The Soul of a Man</title>
        </film>
        <film>
          <title>The Blues</title>
        </film>
      </year>
    </row>
  </director>
</filmography>

Note que las tablas relacionadas por clave pueden anidarse, como en el Listado 5, o referenciarse mediante un enlace insertado dentro del documento como atributos en el nombre de la tabla relacionada.


Detectando cambios en datos XML

Los consumidores de datos XML retornados por las consultas de minería de datos a menudo están interesados sólo en los cambios de los datos, con respecto a una consulta anterior. Las soluciones a este reto con frecuencia se implementan alrededor de un proceso de store/index/diff. En este proceso, los datos XML se extraen y se almacenan. Luego los datos son indexados usando técnicas como indexación de expresión de patrón XML, indexación estructural por B-tree, indexación estructural, indexación por contenido o palabra clave, y otras. Después de que los datos XML son indexados, usted puede consultarlos rápidamente en búsquedas posteriores para accesar a los datos a utilizarse en in proceso diff. El proceso diff produce un delta que usted puede comparar con los datos actuales.

La detección de cambios puede resultar útil para identificar cambios en patrones de datos que usted utilice para análisis futuros y predicciones.


Resumen

Los procesos de minería de datos aplican algoritmos a los datos para descubrir patrones que coincidan con un contexto o consulta dados. Las organizaciones usan la minería de datos para analizar grandes colecciones de datos, para producir informes significativos que ayuden a predecir comportamientos, a superar a la competencia, y más.

El volumen de los datos no estructurados y semiestructurados que se encuentran en la web y en almacenes de datos internos aumenta la necesidad de minería de datos inteligente y efectiva. Los conjuntos de datos grandes y complejos escalan las técnicas tradicionales de minería de datos hacia nuevos niveles de demanda de procesamiento. La minería de datos de los almacenes de datos de hoy requiere que los procesadores intenten crear datos estructurados a partir de datos que a menudo están completamente sin estructura o semiestructurados.

En este artículo, usted repasó el uso y los roles del XMl en la minería de datos, incluyendo reconocimiento de patrones, detección de cambios, búsqueda y detección de similitudes, anotación de datos, y semántica. También observó brevemente los estándares existentes para el uso de XML en el contexto de la minería de datos.

Recursos

Aprender

Obtener los productos y tecnologías

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=Linux
ArticleID=710742
ArticleTitle=Agregue XML como una herramienta de minería de datos
publish-date=07122011