Representando soluciones predictivas en PMML

Pasar de los datos en bruto a las predicciones

PMML, el Predictive Model Markup Language, es el estándar de facto utilizado para representar un gran número de técnicas de modelado predictivo, tales como Normas de Asociación, Modelos de Clúster, Redes Neurales y Árboles de Decisión. Estas técnicas permiten a las compañías en todo el mundo extraer patrones ocultos de los datos y utilizarlos para predecir el comportamiento. En este artículo, comenzamos con un vistazo a las técnicas de modelado predictivo que están directamente soportadas por el estándar. Sin embargo, dado que una solución predictiva es más que las técnicas de estadística que alberga, entonces profundiza aún más en el lenguaje y explora las transformaciones y funciones que son utilizadas para el proceso de datos al ilustrar el uso de datos preprocesados y modelados en PMML como son utilizados para representar una solución predictiva completa.

Alex Guazzelli, VP of Analytics, Zementis, Inc.

Photo of Alex GuazzelliEl Dr. Alex Guazzelli es el VP de Analíticas en Zementis. Inc. donde es responsable de la tecnología central de desarrollo y las soluciones predictivas bajo ADAPA, una plataforma de decisiones basada en PMML. El Dr. Guazzelli tiene un Ph. D. en Ciencias de la Computación de la University of Southern California y es coautor del libro reciente titulado "PMML in Action: Unleashing the Power of Open Standards for Data Mining and Predictive Analytic".



08-04-2011

Introducción a PMML

Hoy, los sensores se están convirtiendo en ubicuos, desde medidores inteligentes en hogares hasta la supervisión de equipo y estructuras tales como plataformas petroleras en aguas profundas. Para que toda la información reunida a partir de estos sensores tenga sentido, las analíticas predictivas necesitan estándares abiertos, que permiten a los sistemas comunicarse sin los impedimentos del código con propietario y de las incompatibilidades. PMML es el estándar utilizado para representar modelos de analítica predictiva o minería de datos. Con PMML, una solución predictiva puede construirse en un sistema y desplegarse en otro donde puede ponerse a trabajar de forma inmediata.

Para la industria del Petróleo y Químicos, el mantenimiento predictivo es una aplicación en la que los datos brutos capturados por los sensores pueden ser preprocesados y utilizados para construir soluciones predictivas que puedan detectar una avería de maquinaria antes de que suceda. A raíz de la tragedia del Golfo de México, las analíticas predictivas y los estándares abiertos pueden proporcionar una herramienta más para garantizar la seguridad y la confiabilidad del proceso.

Como el estándar de facto para representar las soluciones predictivas, PMML permite las transformaciones del modelo y los datos para que se representen conjuntamente en una forma única y concisa. Cuando se utiliza para representar todos los cálculos que conforman una solución predictiva, PMML se convierte en el puente no sólo entre analistas de datos, construcción del modelo y sistemas de despliegue, sino también entre todas las personas y equipos involucrados en el proceso analítico dentro de una compañía. Esto es extremadamente importante, ya que puede ser utilizado para diseminar el conocimiento y las buenas prácticas así como para asegurar la transparencia.


Técnicas de modelado predictivo

Esta sección se enfoca en todas las técnicas de modelado predictivo cubiertas por elementos específicos de PMML. Aunque se propone un gran número de técnicas distintas cada año, necesitan ser comprobadas y adoptadas por una gran comunidad de profesionales de la minería de datos antes de convertirse en parte del estándar. Desde la Versión 4.0, lanzada en 2009, PMML ofrece elementos específicos para las siguientes técnicas de modelado o de estadísticas:

  • Normas de Asociación: AssociationModel elemento
  • Modelos de Clúster: ClusteringModel elemento
  • Árboles de Decisión: TreeModel elemento
  • Clasificadores Naïve Bayes: NaïveBayesModel elemento
  • Redes Neurales: NeuralNetwork elemento
  • Regresión: RegressionModel y GeneralRegressionModel elementos
  • Conjuntos de reglas: RuleSetModel elemento
  • Secuencias: SequenceModel elemento
  • Máquinas de Vectores de Soporte: SupportVectorMachineModel elemento
  • Modelos de Texto: TextModel elemento
  • Series de Tiempo: TimeSeriesModel elemento

Estas técnicas le permiten extraer patrones de datos históricos que no son evidentes para el ojo humano. Las Normas de Asociación, por ejemplo, son frecuentemente utilizadas para encontrar normas o relaciones entre productos en datos de transacción a gran escala. Cuando se presentan con datos de ventas de un supermercado, las Normas de Asociación son utilizadas para averiguar que los clientes que compraron los elementos A y B también compraron el elemento C. La información transmitida por las Normas de Asociación puede entonces ser utilizada para impulsar actividades de marketing así como para la ubicación de los productos dentro de una tienda.

Por otra parte, como su nombre sugiere, los Modelos de Clúster son utilizados para hacer agrupación de datos en clúster en grupos específicos con base en una medida de similitud predeterminada. Los Modelos de Clúster pueden ser de base central donde un centro de clúster es definido por un vector de datos o de base de distribución donde el centro es definido por estadísticas. Cuando se pone a trabajar, un Modelo de Clúster asignará los datos entrantes al clúster con el centro más cercano.

Otra técnica de modelado comúnmente utilizada conocida como Árboles de Decisión implementa una estructura semejante a un árbol en la que los datos están particionados por una serie de nodos de decisión. Los nodos finales definen una clase particular en el caso de los árboles de clasificación. Los Árboles de Decisión son un favorito para las aplicaciones en las que el raciocinio detrás de una decisión predictiva necesita ser explicado. El artículo de developerWorks, "¿Qué es PMML?", se enfoca en otra técnica más, llamada Redes Neurales, que ofrece una forma no lineal de extraer las relaciones entre los campos de datos (ver Recursos para un enlace). Independiente de la técnica de modelado utilizada, sin embargo, la meta es clara: Poder encontrar patrones en los datos o modelar relaciones complejas entre los datos de entrada y la salida que están tratando de predecir.

Una tendencia reciente en analíticas predictivas es utilizar una combinación de varias técnicas de estadística, también conocida como conjunto de modelo, para resolver un problema individual. En este caso de ejemplo, cada modelo produce una predicción que es después combinada en un resultado general. Como en la creencia popular, que dice que dos cabezas piensan mejor que una, dado que distintas técnicas ven a los datos desde distintas perspectivas matemáticas, su combinación puede potenciar el rendimiento predictivo. Para atender el uso de más de una técnica o modelo para resolver un problema individual, PMML define un elemento de modelo múltiple llamado MiningModel. Ofrece una serie de métodos que le permiten combinar la salida desde distintos modelos. Los ejemplos incluyen la mayoría de votos y la media ponderada.


Trabajando con datos en PMML

Los elementos de modelo discutidos anteriormente sirven como el ancla en la que una técnica de modelado particular es representada en PMML. De hecho, cada elemento de modelo encapsula todos los atributos y subelementos necesarios para representar cada técnica de modelado a detalle, sus parámetros y estructura. Pero, por más que el cerebro de una solución predictiva sean sus modelos, sus ojos son los datos que alimentan el modelo con campos de entradas en bruto y derivadas. Ya que PMML puede representar no sólo el cerebro, sino también los ojos, es capaz de entregar el poder necesario para definir una solución predictiva completa.

Para lograr esta hazaña, PMML define un número de elementos y atributos, así como un orden específico que gobierne su uso. Un archivo de PMML siempre inicia con los elementos utilizados para la configuración de los datos. Una vez que la configuración de los datos ha sido realizada, PMML permite la definición de los pasos de preproceso de datos seguidos por el modelo mismo. Echemos un vistazo a estos tres pasos, iniciando con la configuración de datos.

Configuración de datos

PMML especifica una serie de elementos que son utilizados para definir los campos de datos de interés. El elemento DataDictionary es utilizado para especificar todos los campos de datos de entrada en bruto utilizados por un modelo. El Listado 1 muestra cómo un campo numérico llamado pressure es representado en el elemento DataDictionary. Tome en cuenta que además de digitar la información, permite especificar el intervalo de valores válidos. En este ejemplo, cualquier valor debajo de 0 o mayor que 100 es considerado como inválido.

Listado 1. Elemento DataDictionary en PMML
<DataDictionary>
   <DataField name="pressure" dataType="double" optype="continuous" >
      <Interval closure="closedClosed" 
         leftMargin="0" rightMargin="100" />
   </DataField>
   <!-- Other DataFields -->            
</MiningSchema>

Otro elemento de PMML para representar los datos de entrada es MiningSchema. Este elemento es extremadamente importante siempre que un modelo es desplegado y puesto a trabajar, ya que define qué hacer en caso de que cualquiera de los campos de entrada en bruto definidos en el elemento DataDictionary falte o contenga valores inválidos. Este elemento también permite el tratamiento de valores atípicos— extremos asociados con un campo de entrada dado.

En el mundo real, lejos del sistema donde el modelo fue construido, los sensores pueden funcionar incorrectamente, proporcionando información distorsionada o no proporcionando información alguna. Para estas situaciones, el elemento MiningSchema proporciona el proceso exacto a ser seguido, que incrementa sustancialmente la solidez de la solución en general. El Listado 2 muestra la representación de MiningSchema para el campo pressure.

Listado 2. Elemento Mining Schema en PMML
<MiningSchema>
   <MiningField name="pressure" usageType="active" 
      missingValueReplacement="35.32"
      missingValueTreatment="asMean" 
      invalidValueTreatment="asMissing"
      outliers="asExtremeValues"
      lowValue="10"
      highValue="70"/>
    <!-- Other MiningFields -->            
</MiningSchema>

De acuerdo con este ejemplo, si el valor entrante no se encuentra, es reemplazado con el valor 35,32, que representa el valor medio para este campo tal como fue calculado desde los datos históricos. También tome en cuenta que cualquier valor inválido (menor que 0 o mayor que 100— tal como fue definido en DataDictionary en el Listado 1) es tratado como valor faltante. Sin embargo, si valores válidos menores que 10 o mayores que 70 son encontrados, estos son tratados como atípicos y automáticamente sustituidos por los valores 10 o 70, respectivamente.

Preproceso de datos

Una vez que la configuración de datos ha sido realizada, PMML permite la definición de un amplio conjunto de pasos de preproceso de datos. Para eso, proporciona un conjunto de elementos para transformación de datos comunes así como una lista de funciones integradas para la definición de operaciones aritméticas y lógicas. Los cálculos de preproceso de datos son utilizados para potenciar el poder predictivo de los datos de entrada en bruto o simplemente para preparar los datos para que sean presentados en el modelo mismo. Por ejemplo, muchas técnicas de modelado sólo toman campos numéricos como entrada. En este caso, cualquier entrada categórica deberá ser transformada en una entrada numérica antes de ser utilizada.

PMML proporciona estos elementos para el preproceso y la transformación de datos:

  • Normalization: Correlacionar valores continuos y discretos con números.
  • Discretization: Correlacionar valores continuos con valores discretos.
  • Value mapping: Correlacionar valores discretos con valores discretos.
  • Functions: Derivar un valor al aplicar una función a uno o más parámetros.

El Listado 3 muestra el elemento de normalización NormContinous de PMML.

En este ejemplo, PMML es utilizado para transformar el valor del campo de entrada pressure en un valor entre 0 y 1. Tome en cuenta que el nuevo valor normalizado es además asignado a un campo nuevo, un campo derivado llamado normalized_pressure.

Listado 3. Normalización en PMML
<DerivedField name="normalized_pressure" 
   dataType="double" optype="continuous">
   <NormContinuous field="pressure">
      <LinearNorm norm="0" orig="10"/>
      <LinearNorm norm="1" orig="70"/>
   </NormContinuous>
</DerivedField>

En este ejemplo, PMML es utilizado para transformar el valor del campo de entrada pressure en un valor entre 0 y 1. Tome en cuenta que el nuevo valor normalizado es además asignado a un campo nuevo, un campo derivado llamado normalized_pressure.

Las normalizaciones como estas son comúnmente aplicadas a campos de datos utilizados como entrada para un modelo de Red Neural. Al construir su modelo de analítica predictiva utilizando IBM® SPSS® Statistics, automáticamente tiene la opción de exportarlo como un archivo de PMML. Si usted construye un modelo de Red Neural, todos los campos de entrada utilizados por la red serán normalizados y el archivo de PMML resultante incorporará el elemento NormContinuous para todos los campos de entrada continuos.

El Listado 4 muestra el elemento de discretización Discretize de PMML.

Listado 4. Discretización en PMML
<DerivedField name="categorical_pressure" 
   dataType="string" optype="categorical">
   <Discretize field="pressure">
      <DiscretizeBin binValue="low">
         <Interval closure="openClosed" rightMargin="25" />
      </DiscretizeBin>
      <DiscretizeBin binValue="normal">
         <Interval closure="openClosed" 
            leftMargin="25" rightMargin="50" />
      </DiscretizeBin>
      <DiscretizeBin binValue="high">
         <Interval closure="openOpen" leftMargin="50" />
      </DiscretizeBin>
   </Discretize>
</DerivedField>

En este ejemplo, el campo numérico de entrada pressure se clasifica en tres categorías (low, normal y high), que son asignadas a un nuevo campo derivado llamado categorical_pressure. La primera clasificación correlaciona valores de hasta 25 como low. La segunda correlaciona valores mayores que 25 y menores o iguales que 50 como normal. La tercera y última clasificación correlaciona valores mayores que 50 como high.

Tome en cuenta que el elemento Discretize define un conjunto de subelementos de DiscretizeBin que utilizan el elemento Interval de la misma forma que el elemento DataDictionary en el Listado 1. La reutilización de elementos genéricos dentro de los especializados es un tema común en PMML. Esto hace que el lenguaje sea más legible y, para herramientas analíticas, más fácil de exportar e importar.

El Listado 5 muestra el elemento de correlación MapValues de PMML. En este ejemplo, el campo derivado categorical_pressure creado anteriormente es utilizado como el campo de entrada para la transformación de correlación, que crea un campo llamado grouped_pressure. Este es un gran dispositivo de PMML ya que permite que los campos derivados sean creados desde otros campos derivados.

Listado 5. Correlación en PMML
<DerivedField name="grouped_pressure" 
   dataType="integer" optype="categorical">
   <MapValues outputColumn="group">
      <FieldColumnPair column="C1" field="categorical_pressure" />
      <InlineTable>
         <row>
            <C1>low</C1>
            <group>1</group>
         </row>
         <row>
            <C1>normal</C1>
            <group>1</group>
         </row>
         <row>
            <C1>high</C1>
            <group>2</group>
         </row>
      </InlineTable>
   </MapValues>
</DerivedField>

Tome en cuenta que, en este caso, el elemento MapValues agrupa categorías de entrada. Utiliza el elemento InlineTable para asignar las categorías low y normal al grupo 1 y la categoría high al grupo 2.

PMML también define muchas funciones integradas para operaciones aritméticas y lógica junto con una función IF-THEN-ELSE genérica. Al combinarse con otras funciones, proporciona un medio poderoso de representación para casi cualquier tipo de tarea de preproceso (ver el Listado 6).

Listado 6. Función IF-THEN-ELSE
IF categorical_pressure = "high"
THEN system_pressure = 0.3 * pressure
ELSE system_pressure = 2 ^ (1 + log (0.34* pressure + 1)

El Listado 6a muestra el equivalente de PMML de la operación en el Listado 6.

Listado 6a. Definiendo una transformación genérica en PMML
<DerivedField name="system_pressure" 
   dataType="string" optype="categorical">
   <Apply function="if">
      <Apply function="equal">
         <FieldRef field="categorical_pressure" />
         <Constant>high</Constant>
       </Apply>
       <!-- THEN -->
       <Apply function="*">
          <Constant>0.3</Constant>
          <FieldRef field="pressure" />
      </Apply>
      <!-- ELSE -->
      <Apply function="pow">
         <Constant>2</Constant>
         <Apply function="+">
            <Constant>1</Constant>
            <Apply function="log">
               <Apply function="*">
                  <Constant>0.34</Constant>
                  <Apply function="+">
                     <FieldRef field="pressure" />
                     <Constant>1</Constant>
                  </Apply>
               </Apply>
            </Apply>
         </Apply>
      </Apply>
   </Apply>
</DerivedField>

Representación de modelo

Una vez que las transformaciones de datos han sido completamente definidas, es el momento de representar el cerebro de la solución predictiva, el modelo mismo. La representación de PMML para cada técnica de modelado es altamente dependiente de su propia estructura y conjunto de parámetros. Como se describió anteriormente, PMML ofrece una lista extensiva de elementos para representar las técnicas más ampliamente utilizadas en analíticas predictivas.

El ejemplo ilustrado en el Listado 7 muestra la configuración de un elemento de red neural en PMML. Las capas neurales, las neuronas y los pesos de conexión no son mostrados. (Ver el artículo "¿Qué es PMML?" para cómo representar capas neurales y neuronas en PMML).

Listado 7. Configurar un elemento de Red Neural en PMML
<NeuralNetwork
   modelName="ElementAnalyzer" 
   functionName="classification" 
   activationFunction="tanh"
   numberOfLayers="2">

El elemento NeuralNetwork está compuesto por cuatro atributos. El primero, modelName, es utilizado para especificar el nombre del modelo (bastante simple, ¿cierto?). El segundo, functionName, identifica el propósito del modelo, que, en este caso, es clasificación, en contraposición a Regresión. El tercero, activationFunction, especifica que la función de activación a ser utilizada por las neuronas de red al procesar los datos entrantes es tanh, una función sigmoide comúnmente utilizada en Redes Neurales. Finalmente, el cuarto atributo, numberOfLayers, especifica que la red está definida por dos capas, lo que implica la existencia de una capa única oculta así como de una capa de salida. Tome en cuenta que la capa de entrada no está considerada.

Como se puede ver, PMML no es ciencia espacial. Sólo al inspeccionar este elemento particular, puede tener una buena idea de la estructura del modelo y de lo que se trata: una Red Neural utilizada para clasificar elementos distintos. El Listado 8 muestra la definición de un Árbol de Decisión para el mismo problema.

Listado 8. Configurar un elemento de Árbol de Decisión en PMML
<TreeModel modelName="ElementAnalyzer" algorithmName="CART" 
functionName="classification">

Tome en cuenta que, del atributo algorithmName, usted aprende que este árbol particular fue capacitado con CART (Classification And Regression Tree). Los árboles construidos en IBM SPSS Statistics, por ejemplo, se pueden beneficiar de CART para producir Árboles de Decisión que pueda exportar fácilmente como archivos de PMML.


Conclusión

La era de la información ha llegado a nosotros como una bendición: la disponibilidad de grandes volúmenes de datos capturados de transacciones y sensores. Esto permite el construir soluciones que puedan predecir actividades maliciosas, fallas y accidentes antes de que sucedan o causen algún daño. Aunque si desea recibir un beneficio completo de estas soluciones, deben ser acompañadas de estándares abiertos como PMML. A medida que se multiplican las aplicaciones y sistemas, debe asegurarse de que hablen el mismo lenguaje. Ya que PMML es utilizado para representar las transformaciones de datos y los modelos, se convierte en el conducto para compartir soluciones predictivas completas, de datos en bruto a predicciones.

Recursos

Aprender

Obtener los productos y tecnologías

  • IBM SPSS Statistics 18 (antes SPSS Statistics): Ponga el poder de los análisis estadísticos avanzados en sus manos. Sea usted un principiante o un analista de estadísticas experimentado, su conjunto integral de herramientas se adaptará a sus necesidades.
  • ADAPA: Intente una plataforma revolucionaria de gestión de decisiones de analíticas predictivas, disponible como un servicio en la nube o en el sitio. Proporciona un entorno seguro, rápido y escalable para desplegar sus modelos de minería de datos y lógica empresarial y realmente utilizarlos.
  • IBM WebSphere Application Server: Construya, despliegue y gestione aplicaciones empresariales y servicios de SOA robustos, ágiles y reutilizables de todos los tipos mientras reduce los costos de infraestructura de aplicación con IBM WebSphere Application Server.
  • Versiones de evaluación de producto IBM: Descargue o explore las versiones de prueba online en el IBM SOA Sandbox y tenga en manos los productos de middleware y herramientas de desarrollo de aplicaciones de DB2®, Lotus®, Rational®, Tivoli® y WebSphere®.

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=Industries
ArticleID=645595
ArticleTitle=Representando soluciones predictivas en PMML
publish-date=04082011