Prevendo o futuro, Parte 3: Crie uma solução preditiva

Este é o terceiro artigo de uma série de quatro partes que aborda os aspectos mais importantes da analítica preditiva. A Parte 1 ofereceu uma visão geral da análise preditiva. A Parte 2 abordou as técnicas da modelagem preditiva; os algoritmos matemáticos que formam o núcleo da analítica preditiva. Este artigo descreve como usar essas técnicas e criar uma solução preditiva.

Alex Guazzelli, VP of Analytics, Zementis, Inc.

Photo of Alex GuazzelliO Dr. Alex Guazzelli é VP of Analytics na Zementis Inc., onde é responsável pelo desenvolvimento das principais tecnologias e soluções preditivas sob a denominação ADAPA, uma plataforma de tomada de decisão baseada na PMML. Com mais de 20 anos de experiência em análise preditiva, o Dr. Guazzelli é PhD em Ciência da Computação pela University of Southern California e é coautor do livro PMML in Action: Unleashing the Power of Open Standards for Data Mining and Predictive Analytics, agora, em sua segunda edição.



31/Ago/2012

Introdução

A previsão do futuro avançou muito desde o advento da leitura das mãos. Esse processo envolve um grande volume de dados históricos que precisam ser analisados e pré-processados antes de serem submetidos a uma técnica preditiva para treinamento. Um modelo preditivo representa a união de dados e matemática inteligente para solucionar um problema específico. Dado um problema bem definido e um modelo criado para solucioná-lo, erros de previsão devem ser medidos e avaliados rigorosamente. Portanto, a avaliação do modelo é usada para determinar a sua precisão. Em seguida, os resultados da avaliação são usados para selecionar o melhor modelo e para configurar os limites de discriminação ideais. Quando usados em conjunto com regras de negócios, os modelos preditivos têm o potencial de afetar realmente os resultados dos negócios. Uma solução preditiva é, portanto, a união de dados, matemática inteligente e regras de negócios, que juntos permitem tomar melhores decisões de negócios.

A analítica preditiva permite que empresas e pessoas desenvolvam soluções capazes de usar dados históricos para prever o futuro. Com frequência, mesmo modelos preditivos extraordinários nunca são usados, já que o problema que eles se destinam a resolver foi definido de forma insuficiente.

Todos supõem que o desenvolvimento de uma solução preditiva começa com análise e pré-processamento dos dados, seguido do desenvolvimento do modelo e assim por diante. Na verdade, começa antes disso. Um modelo preditivo é a união de dados e matemática inteligente para solucionar um problema específico. Esse problema precisa ser bem definido para que a solução tenha sucesso. Quando o problema é mal definido, é difícil medir os resultados obtidos ao avaliar a solução e, consequentemente, ela pode nunca ser implementada operacionalmente. Por outro lado, um problema bem definido permite avaliar claramente a qualidade da solução proposta. Isso torna mais fácil para todas as partes envolvidas entender os resultados e confiar neles.

Dado um problema específico e bem definido, cientistas de dados podem examinar os dados históricos para certificar-se de que eles suportam o desenvolvimento de uma solução. Mesmo que não sejam perfeitos, os dados disponíveis podem fornecer informações suficientes para o desenvolvimento de uma solução preditiva de sucesso. Quando a análise dos dados está concluída, segue-se o pré-processamento. Essa fase é seguida pelo desenvolvimento do modelo, que resultará em um modelo preditivo. Após o modelo ser avaliado (funciona?), ele é colocado em um contexto de negócios e, por fim, usado. Este artigo aborda todas as fases envolvidas na criação de uma solução preditiva, do pré-processamento dos dados até a implementação operacional. Abaixo, eu usarei o IBM SPSS Statistics para ilustrar essas fases.


Pré-processamento de dados: dos dados brutos aos recursos

Um modelo preditivo deve ser criado diretamente a partir dos dados brutos? Ou os dados devem ser pré-processados antes do desenvolvimento do modelo? Como de praxe, a resposta é "depende". Embora alguns campos de dados possam ser usados no estado em que se encontram, a grande maioria requer algum tipo de tratamento.

Dados históricos possuem vários formatos. Por exemplo, os dados podem conter informações estruturadas e não estruturadas sobre um cliente em particular. Nesse cenário, os dados estruturados incluem campos como idade do cliente, sexo e número de compras no último mês. Essas informações são obtidas a partir do registro de conta do cliente e de transações passadas. Dados não estruturados podem ser representados como um comentário que esse cliente fez como feedback para itens ou serviços comprados. Nas Partes 1 e 2 desta série, usei campos de dados semelhantes para ilustrar uma aplicação da analítica preditiva: prever a perda ou defecção do cliente com base na desistência. Se você está lendo os artigos em sequência, já está familiarizado com esse problema agora.

Para desenvolver um modelo preditivo para emitir o risco de perda de clientes, podemos decidir agrupar os valores de alguns campos de entrada. Por exemplo, todas as idades abaixo de 21 podem ser agrupadas em uma categoria de estudante. Da mesma forma, todas as idades acima de 55 podem ser agrupadas na categoria de aposentado. A categoria de trabalhador pode então ser atribuída a todos com idade entre 21 e 55. Essa é, obviamente, uma simplificação do campo de idade original, mas pode aumentar o poder de previsão quando colocado diante de uma técnica preditiva para treinamento. Na verdade, aumentar o poder de previsão de dados de entrada é o objetivo último do pré-processamento de dados. Ao derivar recursos dos dados brutos, estamos de fato destacando o que é importante. Ao fazer isso, tornamos mais fácil para que uma técnica preditiva saiba mais sobre os padrões importantes ocultos nos dados.

Outro objetivo do pré-processamento é alterar os dados para que sejam adequados para treinamento. Por exemplo, dependendo da técnica usada para desenvolvimento de modelo, pode ser necessário tornar as três categorias relacionadas à idade acima mais discretas. Nesse caso, se o cliente A tem 25 anos, sua idade seria representada por três campos distintos: estudante, trabalhador e aposentado, que seriam mapeados para 0, 1 e 0, respectivamente. Pelo mesmo motivo, pode ser necessário normalizar campos contínuos. Nesse caso, o número de compras no último mês seria transformado em um número entre 0 e 1. Observe que o número original em si já é resultado de pré-processamento, pois representa uma agregação: o número total de compras para todas as transações que ocorreram durante certo período.

Além disso, podemos decidir usar mineração de texto para identificar pisas de desistência em comentários e criar uma medida de desistência que possa também ser representada por um valor entre 0 e 1. A ideia nesse caso é representar cada cliente pela sua lista de recursos e combiná-los em um registro. Se forem selecionados 100 recursos e existirem 100.000 clientes, o resultado será um conjunto de dados contendo 100.000 linhas ou registros e 100 colunas.

Para facilitar o tratamento dos dados, além de permitir aos usuários manipular os dados como descrito acima, alguns pacotes de estatística permitem que os usuários selecionem uma opção para pré-processar os dados automaticamente. IBM SPSS Statistics, por exemplo, permite o desenvolvimento automático de recursos. Basta escolher menu Transform > Prepare Data for Modeling e clicar em Automatic. Será solicitado o seu objetivo. Há uma lista de quatro opções para escolha. São elas: 1) balancear velocidade e precisão; 2) otimizar para velocidade; 3) otimizar para precisão; e 4) customizar a análise. Essa última opção é recomendada apenas para usuários experientes. IBM SPSS Statistics também permite que diversas transformações sejam aplicadas aos dados. Elas podem ser acessadas facilmente através do menu Transform.

Após os dados terem sido tratados adequadamente, é hora de treinar o modelo.


Treinamento do modelo: aprendendo padrões a partir dos dados

Durante o treinamento, todos os registros de dados são apresentados a uma técnica preditiva responsável por aprender os padrões dos dados. No caso da perda de clientes, isso consistirá em padrões que irão diferenciar os desistentes dos não desistentes. Observe que o objetivo aqui é criar uma função de mapeamento entre os dados de entrada (idade, sexo, número de itens comprados no último mês e assim por diante) e a variável de destino ou dependente (desistente vs. não desistente). Existem várias técnicas preditivas diferentes. Algumas, como neural networks (NNs) e máquinas de vetor de suporte, são muito eficientes e possuem a capacidade de aprender tarefas complexas. Essas técnicas também são genéricas e podem ser aplicadas a diversos problemas. Outras, como árvores de decisão e scorecards, também são capazes de explicar o motivo por trás de suas previsões. Dado que as técnicas preditivas foram abordadas na Parte 2 desta série, irei concentrar-me em NNs neste artigo. Lembre-se que os mesmos princípios de desenvolvimento de modelo aplicam-se às demais técnicas. Também irei supor, a partir de agora, que você será o cientista de dados responsável pela tarefa de modelagem.

Para desenvolver uma NN no IBM SPSS Statistics, escolha menu Analyze > Neural Networks e clicar em Multilayer Perceptron. Após isso, aparece uma janela separada por guias que permite configurar todos os parâmetros necessários para desenvolver um modelo preditivo.

Na guia "Variables", selecione a variável de destino ou dependente e todas as variáveis de entrada que você deseja apresentar à rede para treinamento. IBM SPSS Statistics requer que a entrada seja dividida em fatores e covariáveis. Os fatores representam campos de entrada categóricos como idade, que transformamos anteriormente para que contivesse os valores estudante, trabalhador e aposentado. IBM SPSS Statistics irá automaticamente torná-los discretos antes de iniciar o treinamento. Covariáveis representam variáveis contínuas. Elas também serão escaladas novamente de forma automática para melhorar o treinamento da rede. Dado que a discretização de variáveis categóricas e o reajuste de escala das variáveis contínuas são aplicados por padrão, você não precisa fazer isso antes do treinamento do modelo.

É uma prática comum dividir o conjunto de dados que contém os dados tratados em dois grupos: um reservado para treinamento do modelo e o outro para teste. O primeiro conjunto de dados consiste geralmente de 70% dos dados totais. O segundo conjunto de dados, que contém os dados remanescentes, é usado para validação do modelo (veja abaixo). Essa é a separação obtida por padrão com o IBM SPSS Statistics. É possível alterá-lo na guia Partitions.

Assim como qualquer técnica preditiva, NNs são acompanhadas por parâmetros que podem ser ajustados dependendo dos dados e do problema que se está tentando resolver. Na guia Architecture, é possível escolher continuar com uma opção para seleção de arquitetura automática ou decidir, dependendo do nível de experiência da pessoa, customizar a rede para ter um número específico de camadas e de nós por camada. Para mais informações sobre a arquitetura de uma NN e sua importância no treinamento, consulte a Parte 2 desta série de artigos. Na guia Training encontram-se outros parâmetros, incluindo a velocidade de aprendizado (em quanto tempo a rede deve aprender?) e o algoritmo de otimização. Lembre-se que a escolha dos parâmetros errados pode fazer com que não haja aprendizado. Observe também que, como ocorre com qualquer tipo de remédio (com ou sem receita), escolher certa configuração de parâmetro para uma técnica preditiva sempre traz efeitos colaterais. Por exemplo, se a velocidade de aprendizado de uma NN estiver baixa demais, ela não irá progredir. Se estiver muito alta, ela não convergirá. Tenha em mente que os parâmetros padrão oferecidos pelo IBM SPSS Statistics são sempre um bom ponto de partida.

IBM SPSS Statistics também oferece guias de configuração que serão discutidas na seção seguinte. Se todas as guias já tiverem sido configuradas adequadamente, é finalmente hora de desenvolver o modelo. Para fazer isso, basta clicar no botão OK na parte inferior da janela que contém todas as guias de configuração.


Validação de modelo: julgando a precisão

Uma boa prática é reservar até 30% dos dados para validação do modelo. Usar uma amostra de dados que não estava envolvido no treinamento do modelo permite uma avaliação imparcial da sua precisão.

Na guia "Output", selecione a saída para "Classification results". Quando o treinamento do modelo estiver concluído, "Classification table" oferece uma captura instantânea do seu funcionamento. Isso permite saber rapidamente se a tarefa em questão foi aprendida ou não. Não é preciso estar 100% exato. Aliás, é normal que modelos preditivos façam previsões incorretas. O que queremos garantir é que eles façam o menor número possível de erros enquanto fazem muitas previsões corretas. Traduzindo para o jargão da analítica preditiva, queremos que o modelo tenha um índice baixo de false-positives (FP) e false-negatives (FN), o que implica um alto índice de true-positives (TP) e true-negatives (TN). Para o problema da perda de clientes, se o modelo atribuir corretamente um alto risco de perda a alguém que está prestes a sair, temos um TP. Se atribuir um baixo risco de perda a alguém que de fato continuará a ser um cliente fiel, temos um TN. No entanto, sempre que o modelo atribui um alto risco de perda a um cliente satisfeito, temos um FP. Da mesma forma, se atribuir um baixo risco de perda a alguém que está prestes a abandonar o barco, temos um FN.

A Figura 1 mostra um gráfico dos dados de teste após terem sido pontuados. O gráfico supõe que o modelo gera uma pontuação de risco entre 0 e 1.000 e que, quanto maior a pontuação, maior o risco. Como os dados de teste são rotulados, podemos separá-los em duas curvas distintas: desistentes, representados pela curva vermelha, e não desistentes, representados pela curva azul. A linha verde representa um limite de discriminação, para o qual escolhemos o valor de 500. Dessa forma, se um cliente tiver pontuação abaixo desse limite, ele é considerado não desistente. E, se sua pontuação for maior que 500, ele é considerado desistente. No entanto, como podemos ver na Figura 1, um limite igual a 500 cria alguns erros: FPs e FNs. Ao selecionar um limite maior (por exemplo, 600), minimizamos os FPs, mas obtemos muitos FNs. Ao selecionar um limite menor (por exemplo, 400), minimizamos substancialmente os FNs, mas obtemos muitos FPs. Esse equilíbrio traz a pergunta: dadas as escolhas em potencial para o valor de limite, qual é o ideal? A resposta depende dos objetivos de negócios e do custo associado com os diferentes tipos de erros.

Figura 1. Dados de teste pontuados mostrando pontuações do modelo de 0 a 1.000 para desistentes e não desistentes. Limite de discriminação = 500.
Dados de teste pontuados mostrando pontuações do modelo de 0 a 1.000 para desistentes e não desistentes. Limite de discriminação = 500.

O custo associado a um FN é geralmente muito diferente do custo associado a um FP. No exemplo da perda de clientes, ao não identificar um cliente que está prestes a migrar para a concorrência (FN), a empresa perde as rendas futuras que o cliente poderia ter trazido. Ao oferecer descontos e pacotes de retenção a clientes satisfeitos (FPs), está jogando dinheiro fora. Por esse motivo, dependendo do custo associado a cada tipo de erro, você pode optar por um modelo preditivo que produz menos FNs que FPs e vice-versa. Essa decisão determinará o limite de discriminação ideal.

Uma ótima maneira de avaliar a precisão de um modelo treinado para classificar dados de entrada em duas classes é a inspeção de sua curva de ROC (Receiver Operating Characteristic), que também pode ser usada para selecionar o limite de discriminação ideal. É possível gerar essa curva no IBM SPSS Statistics ao selecionar a guia Output e clicar em ROC Curve. A curva de ROC oferece uma representação gráfica do índice de true positive (sensibilidade) contra o índice de false positive (um menos especificidade) para um classificador binário à medida que seu limite de discriminação varia. A Figura 2 mostra a curva de ROC obtida para um modelo de risco de perda de cliente no qual o índice de true positive é obtido com limites de discriminação diferentes ao dividir o número de TPs pelo número total de desistentes (representados pela curva vermelha na Figura 1). Da mesma forma, para obter o índice de false positive em diferentes limites de discriminação, divide-se o número de FPs pelo número total de não desistentes (representados pela curva azul na Figura 1). Como mostra a Figura 2, uma pontuação de 500 identifica um ponto na curva no qual há um índice relativamente baixo de false positive e um índice alto de true positive.

Figura 2. Gráfico de ROC mostrando o índice de true positive versus o índice de false positive à medida que o limite de discriminação muda. Pontos na linha representam diferentes limites de discriminação. São eles: 0, 200, 400, 600, 800 e 1000.
Gráfico de ROC mostrando o índice de true positive versus o índice de false positive à medida que o limite de discriminação muda. Pontos na linha representam diferentes limites de discriminação. São eles: 0, 200, 400, 600, 800 e 1000.

Além disso, é possível usar a área sob a curva de ROC (gerada pelo IBM SPSS Statistics junto com o gráfico de ROC) para comparar diferentes modelos (caso sejam desenvolvidos vários modelos com parâmetros diferentes). Acredita-se que, quanto maior a área, maior a precisão do modelo. A Figura 3 mostra o gráfico de ROC para três modelos diferentes: 1, 2 e 3. Podemos prontamente deduzir que o modelo 2 é mais preciso que os modelos 1 e 3.

Figura 3. Três modelos representados por suas curvas de ROC. Como o modelo 2 possui a maior área abaixo da curva, acredita-se que seja mais preciso que os modelos 1 e 3.
Três modelos representados por suas curvas de ROC. Como o modelo 2 possui a maior área abaixo da curva, acredita-se que seja mais preciso que os modelos 1 e 3.

Pós-processamento de dados: de pontuações a decisões de negócios

A saída bruta de um modelo preditivo é geralmente um valor entre 0 e 1 ou -1 e 1. Para ficar mais fácil para as pessoas, no entanto, essa saída geralmente é colocada numa escala entre 0 e 1.000. A escala da saída de um modelo também pode ser ajustada de acordo com uma dada função, o que garante que certa pontuação indique um número desejável de TPs e FPs.

O pós-processamento também implica integrar pontuações no processo operacional. Nesse caso, as pontuações precisam ser traduzidas para decisões de negócios. Por exemplo, para o problema de perda de clientes, sua empresa pode decidir oferecer um ótimo pacote de retenção a clientes com alto risco de migrar para a concorrência. De fato, diferentes limites de discriminação podem ser usados para determinar diferentes decisões de negócios dependendo da pontuação e do que isso representa em termos de TPs, FPs e seu custo.

Soluções de gerenciamento de decisão que tradicionalmente incorporam apenas regras de negócios agora integram modelos preditivos. Elas fazem isso colocando modelos nas regras. A combinação de regras de negócios e analítica preditiva permite que as empresas aproveitem dois tipos de conhecimento: o dos especialistas e o acionado por dados. Nesse caso, as decisões baseadas em diferentes limites podem ser implementadas imediatamente e até mesmo expandidas para conter outros fatores de decisão importantes. Por exemplo, para determinar o valor real de um cliente, sua pontuação de migração para a concorrência pode ser associada ao valor que ele gastou no passado. Se o gasto for alto e o risco de perda também for alto, é muito importante garantir que o cliente não migre para a concorrência.

Ao combinar conhecimento de especialistas e acionado por dados, as soluções de gerenciamento de decisões tornam-se mais inteligentes, pois são capazes de oferecer recursos aprimorados de decisão.


Conclusão

O desenvolvimento de uma solução preditiva começa com uma definição clara do problema que ela está tentando resolver. Com um objetivo bem definido, os cientistas de analítica de dados podem então começar a desenvolver um modelo preditivo que seja preciso e cujos benefícios possam ser explicados prontamente a todos os envolvidos.

Após definir o problema que estamos tentando resolver, nós analisamos e pré-processamos dados históricos como preparação para o treinamento do modelo. O resultado desse processo é um conjunto de recursos que aumenta o valor preditivo dos dados brutos. Pré-processamento de dados é necessário para tornar os dados originais adequados para o treinamento de modelo. Como existem diversas técnicas preditivas, uma solução preditiva pode aproveitar uma técnica específica, como NNs, ou um conjunto de técnicas que funcionam juntas para solucionar o problema em questão.

Após desenvolver um modelo preditivo, precisamos avaliá-lo. Como erros fazem parte do mundo da analítica preditiva, podemos usar limites de discriminação diferentes não apenas para minimizar erros, mas também para reduzir seu custo associado. Como diferentes limites podem funcionar em tandem com regras de negócios, um sistema de camadas pode ser criado para otimizar o uso das pontuações produzidas por um modelo preditivo. Ao combinar regras de negócios e analítica preditiva, uma verdadeira solução preditiva surge.

A Parte 4, a última desta série, discutirá como implementar a analítica preditiva e como colocar em prática as soluções preditivas.

Recursos

Aprender

Obter produtos e tecnologias

  • IBM SPSS Statistics 20 coloca a energia da análise estatística avançada em suas mãos. Seja um estatístico iniciante ou experiente, seu conjunto abrangente de ferramentas atenderá às suas necessidades.
  • ADAPA é uma plataforma revolucionária de gerenciamento de decisões de analítica preditiva, 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.
  • Experimente o IBM ILOG CPLEX Optimization Studio por 90 dias: Desenvolva rapidamente aplicativos baseados em otimização de apoio à decisão.
  • Avalie o 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 que reduz custos de infraestrutura de aplicativos com o IBM WebSphere Application Server.
  • Software de avaliação: Faça o download ou explore as versões de teste online no IBM SOA Sandbox e entre em contato com as ferramentas de desenvolvimento de aplicativos e produtos de middleware do DB2®, Lotus®, Rational®, Tivoli®eWebSphere®.

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
ArticleID=830553
ArticleTitle=Prevendo o futuro, Parte 3: Crie uma solução preditiva
publish-date=08312012