Representando soluções preditivas em PMML

Movimentação de dados brutos para predições

PMML, the Predictive Model Markup Language, é o padrão de fato usado para representar uma série de técnicas de modelagem preditiva, como Regras de Associação, Modelos de Cluster, Redes Neurais e Árvores de Decisão. Essas técnicas possibilitam que as empresas ao redor do mundo extraiam padrões ocultos de dados e usem-nos para prever comportamentos. Neste artigo, comece vendo as técnicas de modelagem preditiva que são suportadas diretamente pelo padrão. No entanto, como uma solução preditiva é mais do que as técnicas estatísticas que ela engloba, aprofunde-se ainda mais na linguagem e explore as transformações e funções que são usadas para processamento de dados ao ilustrar o uso de pré-processamento e modelagem de dados em PMML da forma como é usado para representar uma solução preditiva completa.

Alex Guazzelli, VP of Analytics, Zementis, Inc.

Photo of Alex GuazzelliO Dr. Alex Guazzelli é o vice-presidente de Analítica na Zementis. Inc., onde é responsável por desenvolver tecnologia de núcleo e soluções preditivas no ADAPA, uma plataforma de tomada de decisões com base em PMML. Ele possui Ph. D. em Ciência da Computação pela Universidade do Sul da Califórnia e, recentemente, foi coautor do livro "PMML in Action: Unleashing the Power of Open Standards for Data Mining and Predictive Analytic"."



31/Ago/2012

Introdução à PMML

Atualmente, os sensores estão se tornando onipresentes, desde medidores inteligentes em residências à monitoração de equipamentos e estruturas como plataformas de petróleo em águas profundas. Para que todos os dados coletados desses sensores tenham um significado, a análise preditiva precisa de padrões abertos, que permitem que os sistemas comuniquem-se sem os impedimentos de código proprietário e incompatibilidades. PMML é o padrão usado para representar análise preditiva ou modelos de mineração de dados. Com PMML, uma solução preditiva pode ser construída em um sistema e implementada em outro, no qual poderá começar a funcionar imediatamente.

Para o segmento de mercado de petróleo e produtos químicos, a manutenção preditiva é uma aplicação na qual dados brutos capturados de sensores podem ser pré-processados e usados para construir soluções preditivas que podem detectar uma pane nas máquinas antes que ela ocorra. Com a tragédia do Golfo do México, a análise preditiva e os padrões abertos podem fornecer mais uma ferramenta para garantir segurança e confiabilidade dos processos.

Como o padrão de fato para representar soluções preditivas, a PMML permite que transformações de modelo e de dados sejam representadas em conjunto de uma forma única e concisa. Quando usada para representar todos os cálculos que compõem uma solução preditiva, a PMML torna-se uma ponte, não só entre análise de dados, construção de modelos e implementação de sistemas, como também entre todas as pessoas e equipes envolvidas no processo analítico dentro de uma empresa. Isto é extremamente importante, pois pode ser usada para disseminar conhecimento e boas práticas, bem como para garantir transparência.


Técnicas de Modelagem Preditiva

Esta seção tem como foco todas as técnicas de modelagem preditivas abrangidas pelos elementos específicos da PMML. Apesar de uma série de técnicas diferentes serem propostas todo ano, elas precisam ser provadas e adotadas por uma grande comunidade de profissionais de mineração de dados antes que se tornem parte do padrão. A partir da versão 4.0, lançada em 2009, a PMML oferece elementos específicos para as seguintes técnicas estatísticas ou de modelagem:

  • Regras de associação: Elemento AssociationModel , elemento
  • Modelos de cluster: Elemento ClusteringModel , elemento
  • Árvores de decisão: TreeModel , elemento
  • Classificadores Naïve Bayes: Classificadores NaïveBayesModel , elemento
  • Redes neurais: NeuralNetwork , elemento
  • Regressão: RegressionModel e GeneralRegressionModel
  • Conjuntos de regras: Elemento RuleSetModel , elemento
  • Sequências: Elemento SequenceModel , elemento
  • Máquinas de vetores de suporte: SupportVectorMachineModel , elemento
  • Modelos de texto: Elemento TextModel , elemento
  • Séries temporais: Elemento TimeSeriesModel , elemento

Essas técnicas permitem extrair padrões de dados históricos que não são óbvios ao olho humano. Regras de associação, por exemplo, são frequentemente usadas para descobrir regras ou relacionamentos entre produtos em dados de transações de grande escala. Quando dados de vendas de um supermercado são apresentados, Regras de Associação são usadas para descobrir que clientes que compram os itens A e B também compraram o item C. As informações obtidas pelas Regras de Associação podem, então, ser usadas para direcionar atividades de marketing, bem como a colocação de produtos dentro de uma loja.

Por outro lado, como seu nome sugere, Modelos de Cluster são usados para agrupar dados em depósitos específicos com base em uma medida de similaridade pré-determinada. Modelos de cluster podem ser baseados em centro, nos quais o centro do cluster é definido por um vetor de dados, ou baseado em distribuição, na qual o centro é definido por estatísticas. Quando colocado em funcionamento, um Modelo de cluster atribuirá dados de entrada ao cluster com o centro mais próximo.

Outra técnica de modelagem comumente usada, conhecida como Árvores de Decisão, implementa uma estrutura em árvore na qual os dados são particionados por uma série de nós de decisão. Nós-folha definem uma classe particular no caso de árvores de classificação. Árvores de decisão é o método favorito em aplicativos nos quais a lógica por trás de uma decisão preditiva precisa ser explicada. O artigo do developerWorks, "O que é PMML?", tem com foco outra técnica, chamada Redes Neurais, que oferece uma forma não linear de extrair relacionamentos entre campos de dados (consulte Resources para obter um link). No entanto, independentemente da técnica de modelagem usada, o objetivo é claro: ser capaz de encontrar padrões em dados ou modelar relacionamentos complexos entre os dados de entrada e a saída que tentam predizer.

Uma tendência recente na análise preditiva é usar uma combinação de várias técnicas estatísticas, também conhecida como conjunto de modelos, para solucionar um único problema. Neste cenário, cada modelo produz uma predição, que é então combinada em um resultado geral. Da mesma forma que a crença de que duas cabeças pensam melhor do que uma, dado que técnicas diferentes olham para os dados de diferentes perspectivas matemáticas, sua combinação pode impulsionar o desempenho preditivo. Para tratar o uso de mais de uma técnica ou modelo para solucionar um único problema, a PMML define um elemento de vários modelos, chamado MiningModel. Ele oferece uma série de métodos que permitem combinar a saída de diferentes modelos. Exemplos incluem voto majoritário e média ponderada.


Trabalhando com dados em PMML

Os elementos de modelo discutidos acima servem como a âncora na qual uma técnica de modelagem particular é representada em PMML. De fato, cada elemento de modelo encapsula todos os atributos e subelementos necessários para representar cada técnica de modelagem em detalhes, seus parâmetros e sua estrutura. Mas, da mesma forma que o cérebro de uma solução preditiva é composto pelos seus modelos, seus olhos são os dados que alimentam o modelo com campos brutos e campos de entrada derivados. Como a PMML é capaz de representar não só o cérebro, mas também os olhos, ela é capaz de fornecer o poder necessário para definir uma solução preditiva completa.

Para alcançar isto, a PMML define uma série de elementos e atributos, bem como uma ordem específica que governa seu uso. Um arquivo PMML sempre inicia com os elementos usados para a configuração dos dados. Quando a configuração dos dados é realizada, a PMML permite a definição de etapas de pré-processamento de dados, seguida pelo modelo em si. Vamos dar uma olhada em todas essas três etapas, começando com a configuração dos dados.

Configuração dos dados

A PMML especifica uma série de elementos que são usados para definir os campos de dados de interesse. O operadorElemento DataDictionary é usado para especificar todos os campos de dados de entrada brutos usados por um modelo. a Listagem 1 mostra como um campo numérico chamado pressure é representado no elemento Elemento DataDictionary . Note que, além das informações de tipo, ela permite especificar o intervalo de valores válidos. Neste exemplo, quaisquer valores menores do que 0 ou maiores do que 100 são considerados inválidos.

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

Outro elemento PMML para representar dados de entrada é o MiningSchema. Este elemento é extremamente importante sempre que um modelo é implementado e colocado em funcionamento, pois ele define o que fazer no caso de um dos campos de entrada brutos definidos no elemento Elemento DataDictionary estarem ausentes ou contiverem valores inválidos. Este elemento também permite o tratamento de valores atípicos —valores extremos associados com um dado campo de entrada.

No mundo real, longe do sistema em que o modelo foi construído, os sensores poderão apresentar mau funcionamento, fornecendo informações distorcidas, ou nenhuma informação de forma geral. Para essas situações, o elemento MiningSchema fornece o processo exato a ser seguido, o que aumenta substancialmente a robustez da solução geral. Listagem 2 mostra a classe MiningSchema para o campo pressure.

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

De acordo com este exemplo, se o valor de entrada estiver ausente, ele é substituído com o valor 35,32, que representa o valor médio para este campo, conforme calculado a partir dos dados históricos. Note também que quaisquer valores inválidos (menores do que 0 ou maiores do que 100—conforme definido no Elemento DataDictionary no campo a Listagem 1) são tratados como valores ausentes. No entanto, se valores válidos menores do que 10 ou maiores do que 70 forem encontrados, eles são tratados como valores atípicos e automaticamente substituídos pelos valores 10 ou 70, respectivamente.

Pré-processamento de dados

Quando a configuração de dados estiver concluída, a PMML permite a definição de um vasto array de etapas de pré-processamento de dados. Para isso, ela fornece um conjunto de elementos para transformações comuns de dados, bem como uma lista de funções integradas para a definição de operações aritméticas e lógicas. Os cálculos do pré-processamento de dados são usados para impulsionar o poder preditivo dos dados de entrada brutos, ou simplesmente para preparar os dados para que sejam apresentados ao modelo em si. Por exemplo, muitas técnicas de modelagem usam somente campos numéricos como entrada. Neste caso, qualquer entrada categórica precisará ser transformada em entrada numérica antes que seja usada.

A PMML fornece esses elementos para pré-processamento e transformação de dados:

  • Normalização: Mapeia valores contínuos e discretos para números.
  • Discretização: Mapeia valores contínuos para valores discretos.
  • Mapeamento de valores: Mapeia valores discretos para valores discretos.
  • Functions: Derivam um valor aplicando uma função a um ou mais parâmetros.

a Listagem 3 mostra o elemento de normalização da PMML NormContinous.

Neste exemplo, a PMML é usada para transformar o valor do campo de entrada pressure para um valor entre 0 e 1. Note que o novo valor normalizado é ainda atribuído a um novo campo, um campo derivado chamado normalized_pressure.

Listagem 3. Normalização em PMML
<DerivedField name="normalized_pressure" 
   dataType="double" optype="continuous">
   <NormContinuous field="pressure">
      <LinearNorm norm="0" orig="10"/>
      <LinearNorm norm="1" orig="70"/>
   </NormContinuous>
</DerivedField>

Neste exemplo, a PMML é usada para transformar o valor do campo de entrada pressure para um valor entre 0 e 1. Note que o novo valor normalizado é ainda atribuído a um novo campo, um campo derivado chamado normalized_pressure.

Normalizações como essa são comumente aplicadas a campos de dados usados como entrada para um modelo de Rede neural. Ao construir seu modelo preditivo analítico usando IBM® SPSS® Statistics, você automaticamente tem a opção de exportá-lo como um arquivo PMML. Se construir um modelo de Rede neural, todos os campos de entrada usados pela rede serão normalizados e o arquivo PMML resultante incorporará o elemento NormContinuous para todos os campos de entrada contínuos.

4 mostra o elemento de discretização PMML Discretize.

Listagem 4. Discretização em 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>

Neste exemplo, o campo de entrada numérico pressure é dividido em três categorias (baixa, normalealta), que são atribuídos a um novo campo derivado chamado categorical_pressure. O primeiro compartimento mapeia valores até 25 como baixa. O segundo mapeia valores maiores do que 25 e menores ou iguais a 50 como normal. O terceiro e último compartimento mapeia valores maiores do que 50 como alta.

Note que o elemento Discretize define um conjunto de subelementos DiscretizeBin que usam o elemento Interval da mesma forma que o elemento Elemento DataDictionary na a Listagem 1. A reutilização de elementos genéricos dentro de elementos especializados é um tema comum em PMML. Isto torna a linguagem mais legível e, para ferramentas analíticas, mais fácil de exportar e importar.

A Listagem 5 mostra o elemento de mapeamento PMML MapValues. Neste exemplo, o campo derivado categorical_pressure criado acima é usado como o campo de entrada para a transformação de mapeamento, que cria um campo chamado grouped_pressure. Este é um excelente recurso da PMML, pois permite que campos derivados sejam criados a partir de outros campos derivados.

Listagem 5. Mapeamento em 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>

Note que, neste caso, o elemento MapValues agrupa categorias de entrada. Ele usa o elemento InlineTable para atribuir as categorias baixa e normal para o grupo 1 e a categoria alta para o grupo 2.

A PMML também define muitas funções integradas para operações aritméticas e lógicas, juntamente com uma função Função IF-THEN-ELSE do Python. Quando combinada com outras funções, ela fornece um meio de representação poderoso para praticamente qualquer tipo de tarefa de pré-processamento (consulte A Listagem 6).

Listagem 6. Implementação da Função IF-THEN-ELSE
IF categorical_pressure = "high"
THEN system_pressure = 0.3 * pressure
ELSE system_pressure = 2 ^ (1 + log (0.34* pressure + 1)

A listagem 6a mostra o equivalente PMML da operação na A Listagem 6.

Listagem 6a. Definindo uma transformação genérica em 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>

Representação de modelo

Uma vez que as transformações de dados estejam totalmente definidas, é hora de representar o cérebro da solução preditiva, o modelo em si. A representação PMML para cada técnica de modelagem é altamente dependente de sua própria estrutura e conjunto de parâmetros. Como descrito anteriormente, a PMML oferece uma extensa lista de elementos para representar as técnicas mais amplamente usadas na análise preditiva.

O exemplo ilustrado na a Listagem 7 mostra a configuração de um elemento de rede neural em PMML. Camadas neurais, neurônios e pesos de conexão não são exibidos. (Consulte o artigo "O que é PMML?" para ver como representar camadas neurais e neurônios em PMML).

Listagem 7. Configurando um elemento de Rede Neural em PMML
<NeuralNetwork
   modelName="ElementAnalyzer" 
   functionName="classification" 
   activationFunction="tanh"
   numberOfLayers="2">

O operadorNeuralNetwork é composto por quatro atributos. O primeiro, modelName, é usado para especificar o nome do modelo (muito simples, não é?). O segundo, functionName, identifica o propósito do modelo que, neste caso, é classificação, em vez de Regressão. O terceiro, activationFunction, especifica que a função de ativação a ser usada pelos neurônios da rede ao processar dados de entrada é tanh, uma função sigmoide comumente usada em Redes neurais. Finalmente, o quarto atributo, numberOfLayers, especifica que a rede é definida por duas camadas, o que implica na existência de uma única camada oculta, bem como uma camada de saída. Note que a camada de entrada não é contada.

Como pode ser visto, PMML não é um bicho de sete cabeças. Só de inspecionar este elemento particular, é possível ter uma boa ideia da estrutura do modelo e o que ele é: uma Rede neural usada para classificar diferentes elementos. A Listagem 8 mostra a definição de uma Árvore de decisões para o mesmo problema.

Listagem 8. Configurando um elemento de Árvore de decisões em PMML
<TreeModel modelName="ElementAnalyzer" algorithmName="CART" 
functionName="classification">

Note que, a partir do atributo algorithmName, descobre-se que esta árvore particular foi treinada com CART (Classification And Regression Tree). Árvores construídas no IBM SPSS Statistics, por exemplo, podem se beneficiar de CART para produzir Árvores de decisão que podem ser facilmente exportadas como arquivos PMML.


Conclusão

A era da informação chegou com uma dádiva: a disponibilidade de grandes volumes de dados capturados de transações e sensores. Isto permite construir soluções que sejam capazes de predizer atividades dolosas, falhas e acidentes antes que ocorram ou causem danos. No entanto, se você quiser tirar plena vantagem dessas soluções, elas deverão estar emparelhadas com padrões abertos, como PMML. À medida que aplicativos e soluções se multiplicam, é preciso garantir que eles falem a mesma linguagem. Como PMML é usada para representar transformações de dados e modelos, ela torna-se o conduite para o compartilhamento de soluções preditivas completas, dos dados brutos às predições.

Recursos

Aprender

  • O que é PMML? (Alex Guazzelli, developerWorks, julho de 2010): Explore o poder da análise preditiva e os padrões abertos nesta introdução à PMML.
  • PMML: Leia o documento de Alex Guazzelli sobre técnicas de modelagem em PMML.
  • PMML in Action: Unleashing the Power of Open Standards for Data Mining and Predictive Analytics (Alex Guazzelli, Wen-Ching Lin, Tridivesh Jena; CreateSpace, maio de 2010): Aprenda a representar seus modelos preditivos ao dar uma olhada prática na PMML.
  • O Data Mining Group (DMG): Explore vários recursos deste consórcio independente, dirigido por fornecedores, que desenvolve padrões de mineração de dados, bem como a Predictive Model Markup Language (PMML).
  • Páginas de recursos de PMML da Zementis : Revise exemplos completos de PMML, incluindo Modelos de cluster, Árvores de decisões, Classificadores Naïve Bayes, modelos de Redes neurais, Modelos de regressão, pontuações e Máquinas de vetor de suporte.
  • O operador página PMML na Wikipedia: Encontre uma visão geral da PMML, além de links para especificações e mais.
  • O operador página Análise preditiva na Wikipedia: Leia sobre os tipos, aplicações e técnicas estatísticas comuns nesta área de análise estatística.
  • O operador página de Mineração de Dados na Wikipedia: Visite e leia mais sobre o processo para extração de padrões dos dados.
  • Zona Segmentos de mercado no developerWorks: obtenha todos os recursos técnicos mais recentes específicos para os segmentos de mercado voltados para desenvolvedores.
  • biblioteca Industries: Consulte a biblioteca de segmentos de mercado do developerWorks e obtenha artigos técnicos e dicas, tutoriais, padrões e IBM Redbooks.
  • My developerWorks: Personalize sua experiência no developerWorks.
  • developerWorks: Fique atualizado sobre tecnologia nestas sessões.
  • developerWorks no Twitter: entre hoje para seguir os tweets do developerWorks.
  • Podcasts do developerWorks: escute entrevistas e debates interessantes para desenvolvedores de software.

Obter produtos e tecnologias

  • IBM SPSS Statistics 18 (anteriormente SPSS Statistics): Coloque em suas mãos o poder da análise estatística avançada. Seja um estatístico iniciante ou experiente, seu conjunto abrangente de ferramentas atenderá às suas necessidades.
  • ADAPA: Experimente uma revolucionária plataforma de gerenciamento de decisões análises preditivas, disponível como um serviço na nuvem ou no local. Ela fornece um ambiente seguro, rápido e escalável para implementar seus modelos de mineração de dados e lógica de negócios, e colocá-los em uso.
  • IBM WebSphere Application Server: Crie, implemente e gerencie aplicativos de negócios SOA robustos, ágeis e reutilizáveis de todos os tipos, ao mesmo tempo em que reduz custos de infraestrutura de aplicativos com o IBM WebSphere Application Server.
  • Versões de avaliação de produto IBM: Faça o download ou explore as versões de teste on-line no IBM SOA Sandbox e entre em contato com as ferramentas de desenvolvimento de aplicativos e produtos de middleware do DB2®, Lotus®, Rational®, Tivoli®e WebSphere®.

Discutir

Comentários

developerWorks: Conecte-se

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


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

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

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Segmentos de mercado, Software livre
ArticleID=555928
ArticleTitle=Representando soluções preditivas em PMML
publish-date=08312012