Executar o Portrait Uplift a partir do Portrait Miner

Transcrição

Executar o Portrait Uplift a partir do Portrait Miner
Uplift Guia do usuário
Versão 7.0A
©
2013 Pitney Bowes Software Inc. Todos os direitos reservados.
Esse documento pode conter informações confidenciais ou protegidas por direitos autorais pertencentes à
Pitney Bowes Inc. e/ou a seus subsidiários e suas empresas associadas.
Portrait Software, o logotipo Portrait Software, Portrait e a marca Portrait Software’s Portrait são marcas
comerciais da Portrait Software International Limited e não podem ser usadas nem exploradas de forma alguma
sem prévia autorização expressa por escrito da Portrait Software International Limited.
Reconhecimento de marcas comerciais
Outros nomes do produto, nomes, marcas, logotipos e símbolos da empresa referenciados aqui podem ser
marcas comerciais ou marcas comerciais registradas de seus proprietários registrados.
Suporte Portrait Software
Se precisar de ajuda com algo que não se encontre nesses documentos, visite a Base de Conhecimentos em
nosso site da Web. http://support.portraitsoftware.com e siga os links para seu produto.
Também é possível baixar outros documentos da Portrait Software a partir desse site. Se não tiver um nome
de usuário e senha - ou se os esqueceu - contate-nos através de um dos canais abaixo.
Se tiver algum problema com o uso, a instalação ou os documentos desse produto, contate-nos usando um
dos seguintes métodos:
E-mail: [email protected]
Telefone
• EUA/Canadá 1-800-335-3860 (número gratuito)
• Resto do mundo +44 800 840 0001
Quando estiver reportando um problema, ajuda se nos disser:
•
•
•
•
O nome do aplicativo de software
As circunstâncias em que o problema apareceu
Que mensagens de erro você viu (se tiver visto alguma)
A versão do software que você estava usando
Pitney Bowes Software Inc.
July 01, 2013
Sumário
Capítulo 1: Introdução................................................................................................9
Objetivo..............................................................................................................................10
Público-alvo.......................................................................................................................10
Visão geral.........................................................................................................................10
Metodologia do Uplift........................................................................................................11
Principais funcionalidades...............................................................................................11
Capítulo 2: Executar o Portrait Uplift......................................................................13
Preparar seus dados para o Portrait Uplift.....................................................................14
Executar o Portrait Uplift a partir do Portrait Miner.......................................................14
Executar o Portrait Uplift a partir da Linha de Comando..............................................18
Sinopse..........................................................................................................................18
Uso típico.......................................................................................................................20
Parar o Portrait Uplift......................................................................................................22
Aplicar modelos Uplift de Agregação por Bootstrap a novos dados..............................22
Estrutura de Diretório Sugerida.....................................................................................23
Configurar SAS para chamar o Portrait Uplift................................................................23
Executar Portrait Uplift a partir do SAS..........................................................................24
Seleção variável a partir do SAS...................................................................................24
Construir modelos uplift a partir do SAS........................................................................25
Modelos uplift de pontuação no SAS.............................................................................27
Capítulo 3: Visão Geral da Metodologia.................................................................29
Introdução..........................................................................................................................30
Estrutura de Modelo..........................................................................................................30
Desenho de Campanha para Análise Uplift....................................................................31
Preparação de Dados........................................................................................................32
Ajuste de Tratamento e Validação de Modelo................................................................32
Vários Tratamentos...........................................................................................................35
Capítulo 4: Seleção Variável e Metodologia de Binning........................................37
Introdução..........................................................................................................................38
Impacto na Estabilidade do Modelo................................................................................38
Seleção variável automatizada........................................................................................39
Binning Automatizado......................................................................................................40
Otimizar os Binnings......................................................................................................40
Reutilização de Estimativas de Qini Baixas...................................................................41
Resultados e Relatórios de Seleção Variável.................................................................41
Perfis de Uplift................................................................................................................42
Relatório de Validação de Partição (o Relatório "Roxo")...............................................42
Campo de Estabilização de Perfil (o Relatório "Drumstick")..........................................42
Capítulo 5: Metodologia de Construção de Modelo..............................................45
Introdução..........................................................................................................................46
Amostragem e Estratificação...........................................................................................46
Agregação por bootstrap..................................................................................................47
Remoção............................................................................................................................48
Exploração de Parâmetros Automatizada......................................................................48
Recomendação de Parâmetros Automatizada...............................................................49
Reconstrução Final...........................................................................................................50
Contaminação de Modelo.................................................................................................50
Capítulo 6: Metodologia de Avaliação de Modelo..................................................53
Introdução..........................................................................................................................54
Interpretação de Valores Qini (Q e q0)............................................................................54
Interpretação das Curvas Qini.........................................................................................55
Uma Curva de Ganhos para Elevação..........................................................................55
Eixo Vertical para Resultados Binários (pc pt)...............................................................55
Eixo Vertical Para Resultados Contínuos (photp)..........................................................55
Curva Qini como um Diagnóstico..................................................................................56
Resultados e Relatórios....................................................................................................56
Perfis de Pontuação.......................................................................................................57
Relatório de Validação de Partição (o Relatório "Roxo")...............................................58
Ponderações Divididas..................................................................................................58
4
Portrait Uplift 7.0A
Capítulo 7: Diretrizes de Parâmetros......................................................................59
Introdução..........................................................................................................................60
Limite de remoção.............................................................................................................60
Tentativas de Árvores Máximas.......................................................................................61
Níveis de Divisão de Árvores...........................................................................................61
Tamanhos Mínimos de População...................................................................................61
Número Mínimo de Nós por Árvore.................................................................................62
Candidatos de Análise e Binnings...................................................................................62
Número de Sacos..............................................................................................................62
Número de Repetições......................................................................................................63
Campo de Estratificação...................................................................................................63
Capítulo 8: Referência de Parâmetros....................................................................65
Introdução..........................................................................................................................66
Parâmetros de Descrição de Focus................................................................................67
focusName (necessário)................................................................................................67
Tipo de Modelo e Campos de Resultados: Visão geral.................................................67
modelType (necessário).................................................................................................68
objectiveField (necessário)............................................................................................68
outcomeSizeActual (opcional).......................................................................................68
outcomeSizeEstimate (necessário para modelos de duas fases).................................68
partitionField (necessário)..............................................................................................69
fixedTrainValidateField (opcional)..................................................................................69
stratificationField (opcional, mas recomendado)...........................................................69
championModelField (opcional).....................................................................................70
userWeightingField (opcional)........................................................................................70
yQiniAxis (opcional; Uplift Cumulativo padrão (pc pt))...................................................71
Parâmetros de Especificação da Árvore.........................................................................71
minPopSize (opcional; padrão 2000).............................................................................71
autoMinPopSize (opcional; padrão 1)............................................................................71
searchMinPopSize (opcional; padrão 0)........................................................................71
nLevels (opcional; padrão 4)..........................................................................................72
Parâmetros Gerais.............................................................................................................72
Parâmetros da seleção variável.......................................................................................72
setacsFocusName (opcional)........................................................................................72
allowOverwrite (opcional; padrão 0)..............................................................................73
nBestACs (opcional; padrão: 5).....................................................................................73
Uplift Guia do usuário
5
saveBestACs (opcional; padrão: 1)...............................................................................73
setacsNEvals (opcional; padrão: 5)...............................................................................73
setacsSigmaWeight (opcional; padrão: auto)................................................................73
setacsRebin (opcional; padrão: 0).................................................................................74
setacsRebinCriterion (opcional; padrão: T)...................................................................74
setacsRebinMean (opcional; padrão: Trim)...................................................................74
setacsUseRebinLQE (opcional; padrão: 1)....................................................................74
Parâmetros de configuração de execução geral............................................................75
nBagsValues (necessário).............................................................................................75
pruneThresholdValues (necessário)..............................................................................76
nRuns (opcional; padrão: 1)...........................................................................................76
Parâmetros de controle de remoção...............................................................................76
prune (opcional; padrão: 1)............................................................................................76
autoPrune (opcional; padrão: 0)....................................................................................76
pruneMethod (opcional; padrão: sd)..............................................................................77
minLeafNodes (opcional; padrão: 4)..............................................................................77
maxTreeAttempts (opcional; padrão: 2).........................................................................77
propAnalysisCandidates (opcional; padrão: 1.0)...........................................................77
Geração de números aleatórios / parâmetros do repetidor de execução...................77
prngSetState (opcional; em branco por padrão)............................................................78
prngCurrentState (opcional)...........................................................................................78
prngInitialState (opcional)..............................................................................................78
tvTrainProp (opcional; padrão: 50%).............................................................................78
Parâmetros de relatório e saída.......................................................................................79
resultsDirStem (opcional; padrão: results).....................................................................79
addTimeStamp (opcional; padrão: 1).............................................................................79
saveFocusStem (opcional; padrão: (blank))..................................................................79
saveModelStem (opcional; padrão: model)...................................................................80
saveTreeStem (opcional; padrão: (blank)).....................................................................80
xmlResultsStem (opcional; padrão: out)........................................................................80
tvNewFieldName (opcional; padrão: TrainValidate).......................................................80
overallUpliftField (opcional; padrão: UpliftScore)...........................................................80
Parâmetros de ROI............................................................................................................80
roiCurrencySymbol (opcional; padrão: $)......................................................................81
roiCostOfTreatment (opcional; padrão: 0.00).................................................................81
roiValueOfBenefit (opcional; padrão: 1.00)....................................................................81
roiCostOfFulfillment (opcional; padrão: 0.00)................................................................81
Parâmetros somente para informação............................................................................81
6
Portrait Uplift 7.0A
currentNBags (configurado durante a construção de modelo)......................................81
currentPruneThreshold (configurado durante a construção de modelo).......................81
applyFocusName...........................................................................................................81
Exemplo de Arquivo de Parâmetros Completo..............................................................82
Uplift Guia do usuário
7
Capítulo
Introdução
Nesta seção:
•
•
•
•
•
Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Público-alvo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Visão geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Metodologia do Uplift . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Principais funcionalidades . . . . . . . . . . . . . . . . . . . . . . . .11
1
Objetivo
Objetivo
Esse documento descreve como criar e gerenciar modelos preditivos do Portrait Uplift.
Público-alvo
O Guia do Usuário do Uplift é indicado para profissionais de estatística e analistas de marketing com
conhecimentos básicos de:
• Modelagem preditiva
• Portrait Miner (workbench analítico)
• Análise de marketing
Visão geral
O Portrait Uplift é uma solução de modelagem automatizada, que supera os modelos tradicionais de
resposta do cliente, risco e comportamento de retenção para modelar a forma como essa probabilidade
se altera devido a um tratamento de marketing.
O Portrait Uplift usa uma abordagem de marketing que retém grupos de clientes selecionados de forma
aleatória que não foram tratados por uma campanha. Analisando os clientes não tratados, conjuntamente
com os clientes tratados, o Portrait Uplift pode prever como cada probabilidade de comportamento de
cliente irá aumentar (ou diminuir) se for tratado.
Em cada caso, o Portrait Uplift cria quatro segmentos de resposta distintos. Por exemplo, em uma
campanha de venda cruzada, esses segmentos podem ser descritos como:
Segmento de mercado
Descrição
Persuadíveis:
Clientes que compram a oferta de venda cruzada, que não o fariam se não
tivessem sido tratados.
Casos Certos:
Clientes que compram independentemente de terem sido contatados.
Casos Perdidos:
Clientes que não compram, independentemente de terem sido contatados.
Não Incomodar:
Clientes nos quais a campanha resulta em uma resposta negativa.
As ferramentas comuns de modelagem preditiva se focam em uma visualização simples de uma base
de clientes, isto é, os clientes que compram e os que não compram. O Portrait Uplift vai mais longe e
classifica os clientes em segmentos (identificados acima) que lhe permitem:
• Refinar seu público-alvo, reduzindo os custos gerais da campanha
10
Portrait Uplift 7.0A
Capítulo 1: Introdução
• Identificar o segmento de mercado mais importante, "os persuadíveis"
• Identificar clientes que irão responder negativamente, potencialmente os perdendo a longo prazo
Metodologia do Uplift
O Portrait Uplift foi criado com base no algoritmo de árvore de uplift no in Portrait Miner e encapsula
uma melhor prática metodológica para criar modelos uplift robustos. Essa metodologia se baseia em
anos de experiência prática com instituições financeiras e de telecomunicações líderes e inclui técnicas
poderosas para a redução de ruído. Também identifica e isola efeitos de elevação pequenos, mas reais,
do comportamento de linha de base subjacente.
Principais funcionalidades
O Portrait Uplift oferece:
• Uma interface de usuário visual interativa para construir e usar modelos uplift (consulte a seção
Executar o Portrait Uplift a partir do Portrait Miner na página 14), e também uma interface de linha
de comando, que aceita scripts (consulte a seção Executar o Portrait Uplift a partir da Linha de
Comando na página 18)
• Uma interface de linha de comando, que aceita scripts, para construir modelos uplift sem interação
do usuário (consulte a seção Executar o Portrait Uplift a partir da Linha de Comando na página
18)
• Uma extensão para o ambiente de programação SAS que permite que os usuários do SAS criem e
usem modelos uplift diretamente a partir de programas SAS, sem qualquer necessidade de aprender
a trabalhar em novos aplicativos (consulte a seção Executar Portrait Uplift a partir do SAS na página
24)
• Modelos expressos como código SAS ou SQL, permitindo que modelos uplift sejam pontuados
diretamente nesses ambientes
• Um aplicativo projetado para possuir transparência de resultados. Esse inclui visibilidade clara de
fatores contributivos, validação de modelos e metodologia de modelos uplift (consulte a seção Visão
Geral da Metodologia na página 29, Seleção Variável e Metodologia de Binning na página 37,
Metodologia de Construção de Modelo na página 45)
• A saída do relatório otimizado compatível com Microsoft Office que habilita os usuários de negócios
para tomadas de decisão e análises ad hoc rapidamente. Esses relatórios incluem a identificação
automática dos melhores "pontos de decisão" da campanha, como lucro máximo, custo mínimo de
tratamento e resposta adicional máxima (consulte a seção Metodologia de Avaliação de Modelo
na página 53).
Uplift Guia do usuário
11
Capítulo
Executar o Portrait Uplift
Nesta seção:
•
•
•
•
•
Preparar seus dados para o Portrait Uplift . . . . . . . . . . . .14
Executar o Portrait Uplift a partir do Portrait Miner . . . .14
Executar o Portrait Uplift a partir da Linha de Comando .18
Configurar SAS para chamar o Portrait Uplift . . . . . . . . .23
Executar Portrait Uplift a partir do SAS . . . . . . . . . . . . . .24
2
Preparar seus dados para o Portrait Uplift
Preparar seus dados para o Portrait Uplift
A sequência básica de etapas para usar o Portrait Uplift é descrita abaixo, interativamente, pelo Portrait
Miner (consulte a seção Executar o Portrait Uplift a partir do Portrait Miner na página 14), ou por
meio da linha de comandos (consulte a seção Executar o Portrait Uplift a partir da Linha de Comando
na página 18).
Ambas as abordagens usam etapas similares. O Portrait Miner orienta o usuário através do processo,
fornecendo uma sequência de assistentes para o guiar a cada etapa, enquanto a linha de comandos
oferece um maior controle granular sobre a metodologia e a oportunidade de um processamento em
lotes automatizado.
Em ambos os casos, assumimos que nosso focus base tem o nome example.ftr e a primeira tarefa
é a preparação do focus para análise (usando o Decision Studio interativamente ou importando
metadados), tendo especial atenção em:
• Configurar um objetivo apropriado, campo de partição e marcar candidatos de análise;
• Marcar campos como categóricos, sendo necessário;
• Se preferir, criar uma divisão ou um campo de estratificação de treinamento-validação fixos, campo
de ponderação de caso e/ou pontuação de sua melhor opção (consulte a seção Visão Geral da
Metodologia na página 29 para mais informações).
• Se preferir, adicione binnings apropriados aos candidatos de análise, se não pretende otimizar binnings
(consulte a seção Seleção Variável e Metodologia de Binning na página 37);
Executar o Portrait Uplift a partir do Portrait Miner
Para usar o Portrait Uplift a partir do Portrait Miner, clique com o botão direito do mouse no conjunto de
dados de modelagem (ou arquivo de parâmetros) para iniciar um dos vários assistentes, conforme
descrito abaixo.
Observação:
Um arquivo params.xml é fornecido no diretório de instalação do Portrait Uplift que proporciona
definições de todo o site para a seleção variável e para os parâmetros de construção de modelo (consulte
a seção Referência de Parâmetros na página 65). Quando um desses assistentes é iniciado, essas
definições são usadas. Assim que um desses assistentes tiver sido usado, os parâmetros usados são
salvos e recarregados para o assistente ao executá-lo novamente, o que lhe permite criar suas próprias
definições de parâmetros específicas para um conjunto de dados especial. Também é possível editar
diretamente o arquivo de parâmetros para alterar parâmetros avançados que não são exibidos pelo
assistente. Todas as alterações serão mescladas com quaisquer configurações que sejam alteradas
mais tarde no próprio assistente.
• Prepare seu focus (example.ftr) conforme descrito acima.
14
Portrait Uplift 7.0A
Capítulo 2: Executar o Portrait Uplift
• Se preferir, para avaliar o conjunto de dados para a modelagem uplift, clique com o botão direito do
mouse no focus (example.ftr) e escolha Portrait Uplift > Avaliar Dados. É possível, opcionalmente,
configurar valores apropriados para os parâmetros de ROI na caixa de diálogo Portrait Uplift - Avaliar
Dados.
Depois de clicar em Ir, será apresentado um relatório sobre os dados e sua adequação à modelagem
uplift na guia Saída.
• Se preferir, para selecionar os melhores candidatos de análise, clique com o botão direito do mouse
no focus do qual pretende escolher (example.ftr) e escolha Portrait Uplift > Selecionar Variáveis
(Figura 1). A metodologia para a seleção variável é explicada de forma mais detalhada na seção
Seleção Variável e Metodologia de Binning na página 37.
Na caixa de diálogo Portrait Uplift - Selecionar Variáveis (Figura 2), escolha se pretende otimizar
os binnings (e, nesse caso, o número máximo de bins a considerar), o número de candidatos de
análise finais a selecionar, se pretende usar um campo de ponderamento de caso para ajuste de
tratamento (consulte a seção userWeightingField (opcional) na página 70) e uma localização para
o focus de saída (que não pode ser a mesma que a do focus de entrada). O arquivo de parâmetros
é salvo automaticamente com um nome de arquivo baseado nos nomes dos foci de entrada e de
saída.
Clique em Ir.
A saída resultante será criada em uma pasta com um nome como resultsYYYYMMDD-HHMMSS,
onde YYYYMMDD corresponde a uma data com oito dígitos e HHMMSS a um timestamp, por ex.,
results20121212-121212. Se tiver escolhido otimizar binnings, um conjunto de gráficos de binnings
otimizados será incluído em uplift-optimizer-setacs-report_YYYYMMDD-HHMMSS.xsl.
• Para executar o Portrait Uplift para localizar os "melhores" parâmetros de modelo, clique com o botão
direito do mouse no focus que pretende usar (esse será normalmente o focus de saída da fase de
seleção variável, example_BestACs.ftr), e escolha Portrait Uplift > Construir e Analisar Modelos.
A metodologia usada para construir modelos é descrita mais detalhadamente na seção Metodologia
de Construção de Modelo na página 45.
Na caixa de diálogo Portrait Uplift - Construir e Analisar Modelos, escolha os parâmetros para o
processo de construção (seguindo as diretrizes da seção Diretrizes de Parâmetros na página 59):
• O número de árvores a serem usadas por modelo (nBagsValues, seção nBagsValues (necessário)
na página 75);
• O número de modelos uplift a construir para cada conjunto de parâmetros (nRuns, seção nRuns
(opcional; padrão: 1) na página 76);
• Se devem ser analisados múltiplos tamanhos mínimos dos segmentos (searchMinPopSize, seção
searchMinPopSize (opcional; padrão 0) na página 71);
• Se é permitido que o software configure o tamanho mínimo da população (autoMinPopSize,
seção autoMinPopSize (opcional; padrão 1) na página 71);
• Especificar o tamanho mínimo da população do segmento de uma árvore de decisão (minPopSize,
seção minPopSize (opcional; padrão 2000) na página 71);
• O número mínimo de segmentos ramificados após a remoção (minLeafNodes, seção
minLeafNodes (opcional; padrão: 4) na página 77);
• O número máximo de níveis para construir árvores de decisão (nLevels, seção nLevels (opcional;
padrão 4) na página 72);
Uplift Guia do usuário
15
Executar o Portrait Uplift a partir do Portrait Miner
• Configurar o nome do arquivo de parâmetros de saída (nLevels, seção nLevels (opcional; padrão
4) na página 72).
Clique em Seguinte para visualizar a guia Finanças e (opcionalmente) configure os parâmetros
financeiros.
Clique em Seguinte para visualizar a guia Avançadas e (opcionalmente) configure:
• O tipo de modelo a construir (modelType, seção modelType (necessário) na página 68);
• Se é permitido que o software escolha o limite de remoção;
• Uma lista de limites de remoção a usar (pruneThresholdValues, seção pruneThresholdValues
(necessário) na página 76);
• Uma semente aleatória específica a usar, em vez de permitir que o Portrait Uplift escolha uma
(prngCurrentState, seção prngCurrentState (opcional) na página 78);
• O campo a usar para treinamento/validação, se houver (fixedTrainValidateField, seção
fixedTrainValidateField (opcional) na página 69);
• A proporção de dados a usar para o conjunto de treinamento, se o campo treinamento/validação
for criado automaticamente (tvTrainProp, seção tvTrainProp (opcional; padrão: 50%) na página
78);
• O campo a usar para ponderamento de caso, se os registros representarem diferentes números
de clientes reais, (userWeightingField, seção userWeightingField (opcional) na página 70);
• A proporção de candidatos de análise escolhidos aleatoriamente a usar
(propAnalysisCandidates, seção propAnalysisCandidates (opcional; padrão: 1.0) na página
77);
• O número máximo de tentativas para construir cada árvore (maxTreeAttempts, seção
maxTreeAttempts (opcional; padrão: 2) na página 77);
Clique em Seguinte para visualizar a guia Parâmetros do resultado e (opcionalmente) configure:
• O nome do campo de elevação prevista a criar overallUpliftField, seção overallUpliftField
(opcional; padrão: UpliftScore) na página 80);
• Se pretende guardar foci intermediários após cada construção de modelo (saveFocusStem, seção
saveFocusStem (opcional; padrão: (blank)) na página 79);
• O campo a usar no modelo para sua melhor opção, se houver (championModelField, seção
championModelField (opcional) na página 70);
• Se pretende criar um modelo SAS.
Clique em Ir.
Isso irá criar saída em uma pasta com um nome de formato resultsYYYYMMDD-HHMMSS, onde
YYYYMMDD corresponde a uma data com oito dígitos e HHMMSS a um timestamp, por ex.,
results20121212-121212 (Figura 9 na seção Metodologia de Construção de Modelo na página
45).
À medida que a execução avança, a informação é exibida na guia Saída. Quaisquer erros ou avisos
serão normalmente apresentados em uma guia separada. Quando a execução estiver concluída,
clique em Seguinte para criar os resultados: é criada uma planilha do Excel na pasta mencionada
acima e ela será aberta automaticamente.
16
Portrait Uplift 7.0A
Capítulo 2: Executar o Portrait Uplift
Também é possível abrir a planilha do Excel em uma fase posterior, se procurar pela pasta, clicar
com o botão direito do mouse no arquivo e selecionar Enviar para o Excel. O arquivo de planilha
terá um nome com o formato uplift-optimizer-report_YYYYMMDD-HHMMSS.xls. São também
produzidos os relatórios HTML herdados BestACs_recommended_parameters.xml. Os relatórios são
descritos mais detalhadamente na seção Metodologia de Avaliação de Modelo na página 53.
Se tiver sido recomendado um conjunto de parâmetros, será criado um novo arquivo de parâmetros
com um nome com o formato <focusname>_recommended_parameters.xml
(example_BestACs_recommended_params Deploy Recommended Model .xml), em conjunto
com um arquivo de focus, e a recomendação será realçada na planilha. O novo arquivo de parâmetros
contém parâmetros que são apropriados para a fase seguinte, a construção do modelo final.
• Se preferir, a análise e escolha de parâmetros para a construção final pode ser realizada visualmente.
Selecione os melhores parâmetros de modelo, dando especial atenção ao desempenho de validação
(isto é, o grau de proximidade entre as linhas de treinamento e de validação no gráfico), mas também
ao valor global q0 (Qini), à forma da curva, à elevação máxima (ou mínima) alcançada, à proporção
de população a considerar alvo, etc. Assim que encontrar um bom conjunto de parâmetros de
construção de modelo, crie uma construção de modelo de agregação por booststrap final em todo o
conjunto de dados (sem divisão treinamento/validação). Consulte a seção Reconstrução Final na
página 50 para mais informações.
• Para executar novamente o Portrait Uplift para construir o modelo recomendado, clique com o botão
direito do mouse no focus (example_BestACs.ftr) ou no próprio arquivo de parâmetros
recomendado e escolha Portrait Uplift > Construir Modelo Recomendado. Isso irá construir um
único modelo usando os parâmetros recomendados na fase anterior, mas com um grande número
de sacos e sem dados de validação.
Na caixa de diálogo Portrait Uplift - Construir Modelo Recomendado, escolha os parâmetros para
o processo de construção e clique em Ir.
À medida que a execução avança, a informação é exibida na guia Saída. Quando a execução estiver
concluída, são criados novos relatórios de resultados e o modelo será criado em um arquivo, em
conjunto com o focus, com um nome com o formato <focusname>_recommended_model.xml por
exemplo, (BestACs_recommended_model.xml). Esse arquivo modelo é semelhante ao modelo
que é gerado na pasta de resultados, mas foi processado para que seja gerado somente um campo
quando o modelo é implementado.
• Para implementar o modelo final em um novo conjunto de dados, clique com o botão direito do mouse
no arquivo modelo criado na fase anterior (example_bestACs_recommended_model.xml) ou no
arquivo de focus no qual pretende implementar e escolha Portrait Uplift > Implementar Modelo.
Na caixa de diálogo Portrait Uplift - Implementar Modelo, escolha os parâmetros e clique em Ir.
(Essa ação é basicamente idêntica à ação "Derivar campos" do Portrait Miner.)
• Para parar uma execução em andamento, no Portrait Miner, clique com o botão direito do mouse na
pasta de resultados ou em um arquivo XML na pasta de resultados e escolha Portrait Uplift > Parar.
• À medida que as pastas de resultados se acumulam, você pode pretender remover algumas delas.
Para remover somente uma pasta do Portrait Miner, clique com o botão direito do mouse em qualquer
arquivo .ftr ou .xml e escolha Portrait Uplift > Excluir Resultados. Para remover uma ou mais
pastas de resultados do Portrait Miner, clique com o botão direito do mouse em qualquer arquivo
.ftr ou .xml em qualquer pasta que contenha os resultados e escolha Portrait Uplift > Excluir
Resultados.
Uplift Guia do usuário
17
Executar o Portrait Uplift a partir da Linha de Comando
Na caixa de diálogo Portrait Uplift - Excluir Resultados, escolha as pastas de resultados que
pretende remover.
• O Portrait Uplift cria automaticamente descrições de modelo no formato do Portrait Miner e em código
SAS (se selecionado). Para converter manualmente um modelo para o formato SAS, clique com o
botão direito do mouse no arquivo XML de modelo (na subpasta do diretório de resultados chamada
models) e escolha Converter > para SAS.
Isso converte o modelo em um fragmento de etapa DADOS SAS. Normalmente, o código é colado
entre uma instrução DATA, que se refere a um conjunto de dados de entrada com variáveis de origem
apropriadas (as listas de códigos geradas exigem variáveis de entrada em um comentário inicial), e
uma instrução subsequente RUN. Por exemplo:
data scores;
set inputs;
<...paste converted model here...>
run;
Para mais informações sobre a etapa DADOS SAS, consulte a documentação SAS.
• Para converter manualmente um modelo para o formato SQL, clique com o botão direito do mouse
no arquivo XML de modelo (na subpasta do diretório de resultados, chamada models) e escolha
Converter > para SQL.
Executar o Portrait Uplift a partir da Linha de
Comando
Sinopse
A maior parte das funcionalidades do Portrait Uplift são invocadas por meio do comando qsupliftplus.
Existem três variantes básicas desse comando:
• qsupliftplus -s [ params.xml ]: é usado para selecionar variáveis preditivas (candidatos de
análise) para uso com o Portrait Uplift. Para isso, esse comando gera estimativas de Qini baixas para
cada candidato de análise no focus de entrada e, opcionalmente, cria um campo de estratificação.
• qsupliftplus [ params.xml ]: realiza uma série de construções de modelo, cada uma das
quais produz uma árvore uplift de agregação por bootstrap de modo k e apresenta os resultados sobre
uma divisão de treinamento/validação.
• qsupliftplus -a [ params.xml ]: aplica a construção de modelo com o Portrait Uplift a um
novo focus e grava informações da construção de modelo original, juntamente com informações Qini
sobre os modelos aplicados para produzir gráficos Qini (consulte a seção Aplicar modelos Uplift de
Agregação por Bootstrap a novos dados na página 22).
O comando qsupliftplus também suporta os seguintes argumentos:
18
Opção
Efeito
-h
Mostra mensagem de ajuda
Portrait Uplift 7.0A
Capítulo 2: Executar o Portrait Uplift
Opção
Efeito
-v
Mostra informação da versão
-d
Aciona a saída de depuração
-D
Esvazia todo o rastreamento da pilha em caso de
erro
-o <arquivo de parâmetros>
Esvazia um arquivo de parâmetros XML. Se o
nome de focus opcional também for fornecido, os
parâmetros relevantes serão deduzidos.
-P <campo de partição>
Especifica o campo de partição quando cria um
arquivo de parâmetros com a opção -o
-O <campo de objetivo>
Especifica o campo de objetivo quando cria um
arquivo de parâmetros com a opção -o
As opções de execução detalhadas de todas as variantes de qsupliftplus são controladas por um
arquivo de parâmetros XML. Por padrão, procura um arquivo chamado params.xml no diretório atual,
mas é possível usar um arquivo de parâmetros alternativo ao especificar seu nome na linha de comando,
por exemplo, qsupliftplus -s /some/path/myconfig.xml.
Um arquivo de parâmetros modelo pode ser gerado ao executar qualquer uma das variantes básicas
acima, sem especificar quaisquer argumentos adicionais, ou ao especificar somente o nome do caminho
para um focus de entrada (nesse caso, alguns dos parâmetros serão deduzidos desse focus).
Uma referência de parâmetro completa é fornecida na seção Referência de Parâmetros na página
65, mas os parâmetros usados com mais frequência estão resumidos abaixo:
Tabela 1:
Descrição do focus
Seleção variável
setacsFocusName: focus para nBestACs: para a seleção variável escolher
a seleção variável
focusName: escrito após a
seleção variável e lido pela
construção de modelo
setacsRebin: 1, 0, ou binfile.xml
modelType: auto, binary, real
setacsRebinCriterion: L, M, E ou T
objectiveField: resultado
partitionField: tratado=1,
controlado=0
stratificationField:
resumir campos-chave
championModelField:
plotados em gráficos
Uplift Guia do usuário
19
Uso típico
Descrição do focus
Seleção variável
allowOverwrite: permite a
substituição após a seleção
variável
Especificações da árvore
Geral
searchMinPopSize: 0 ou 1
nBagsValues: c. 10–20
autoMinPopSize: 0 ou 1
pruneThresholdValues: por ex., [3%, 2%, 1%,
0,5%]
minPopSize: c. 500–4.000
nRuns: por valor superior
nLevels: de divisões
minLeafNodes: c. 3–8 (após remoção)
maxTreeAttempts: para satisfazer minLeafNodes
tvTrainProp: c. 50–70%; por isso, 100%
fixedTrainValidateField: valores de string
"T" e "V"
propAnalysisCandidates: usado para cada
árvore
userWeightingField: ponderação de caso para
cada registro
Os resultados da execução do Portrait Uplift são escritos em um arquivo XML, a partir do qual podem
ser produzidos gráficos e relatórios. Use o qsupliftresults para processar resultados no diretório
atual ou especificar o nome de um diretório opcional para processar resultados nesse local.
Uso típico
A sequência básica de operações para um uso típico do Portrait Uplift é a que se encontra descrita
abaixo. Aqui, presumimos que nosso focus base se chama example.ftr e que foi preparado conforme
descrito abaixo.
1. Crie um arquivo de parâmetros modelo se ainda não tiver um adequado. Se planejar otimizar binnings
e/ou selecionar candidatos de análise, faça isso executando o
qsupliftplus -s focus.ftr
Se planejar executar o Portrait Uplift sem seleção variável, use o
qsupliftplus focus.ftr
(A principal diferença entre os dois é que, ao usar -s, a seleção é variável no focus fornecido e, em
seguida, é criada a entrada para a construção de modelo; quando se trata da construção de modelo
isoladamente, usa o focus fornecido diretamente.)
Isso irá preencher todos os parâmetros que conseguir, incluindo a configuração de um minPopSize
razoável se os campos de objetivo e de partição estiverem configurados no focus especificado.
20
Portrait Uplift 7.0A
Capítulo 2: Executar o Portrait Uplift
Se pretender que o arquivo de saída tenha outro nome que não params.xml, é possível especificar
isso por meio da marcação -o, ou seja,
qsupliftplus -s -o foo.xml focus.ftr
irá produzir um arquivo de parâmetros modelo chamado foo.xml.
É possível omitir o nome do focus e, nesse caso, será criado um arquivo de parâmetros de modelo
genérico.
2. Edite o arquivo de parâmetros params.xml e salve-o, normalmente, com um novo nome. Nesse
caso, exampleParams.xml pode ser apropriado. Os detalhes sobre o que existe no arquivo podem
ser encontrados na seção Referência de Parâmetros na página 65. Às vezes, é útil armazenar os
parâmetros em um subdiretório chamado params, para reduzir a confusão.
3. Se preferir, selecione os melhores candidatos de análise e otimize os binnings (consulte a seção
Seleção Variável e Metodologia de Binning na página 37) com um comando, como
qsupliftplus -s params/exampleParams.xml
(Isso assume que o arquivo de parâmetros esteja armazenado em um subdiretório de parâmetros.)
Assim que a seleção variável estiver concluída, construa o relatório de resultados, mudando para
o subdiretório criado e usando o comando qsupliftresults, por ex.,
cd results20121212-121212
qsupliftresults
4. Se preferir, crie manualmente um campo de estratificação (por ex., strat) para ser usado pelo
Portrait Uplift, conforme descrito na seção Amostragem e Estratificação na página 46, e edite
adequadamente o arquivo de parâmetros exampleParams.xml. (Normalmente, esse passo é
realizado de forma automática durante a seleção variável.)
5. Execute o Portrait Uplift para construir modelos (consulte a seção Metodologia de Construção de
Modelo na página 45) digitando:
qsupliftplus params/exampleParams.xml
Geralmente, isso irá criar saída em um diretório com um nome semelhante a
resultsAAAAMMDD-HHMMSS, onde AAAAMMDD corresponde a uma data com oito dígitos e HHMMSS
a um timestamp, por ex., results20121212-121212.
6. Agora, crie os gráficos Qini e o relatório de modelo (consulte a seção Metodologia de Avaliação
de Modelo na página 53), mudando para o diretório de resultados e digitando em seguida:
qsupliftresults
Isso irá produzir um arquivo PDF de gráficos com um nome semelhante a
results20121212-121212.pdf e uma página da web com um nome semelhante a
report20121212-121212.html que apresenta os gráficos e que contém outras informações
resumidas sobre as repetições.
7. Possivelmente, você já iterou algumas vezes, encontrando gradualmente melhores parâmetros de
construção de modelo e ajustando o conjunto de campos ou seus binnings. Alguns dos parâmetros
de construção de modelo mais importantes são:
• O limite de remoção, controlado por pruneThresholdValues;
• O tamanho mínimo de população minPopSize;
• O número mínimo de nós filhos por árvore minLeafNodes.
Uplift Guia do usuário
21
Parar o Portrait Uplift
Esses três interagem bastante, por isso, alterar um pode implicar alterar os restantes. Existem
também muitos outros parâmetros que podem ser alterados com utilidade em algumas circunstâncias.
Consulte a seção Diretrizes de Parâmetros na página 59 para uma maior orientação.
8. Ao avaliar o desempenho do modelo, tenha especial atenção com relação ao desempenho de
validação (ou seja, o grau de proximidade entre as linhas de treinamento e de validação no gráfico),
mas também ao valor global q0 (Qini), à forma da curva, à elevação máxima (ou mínima) alcançada,
à proporção da população a considerar alvo, etc. Lembre-se de que as curvas Qini podem ter valores
Qini idênticos, mas formas muito diferentes e que o modelo será mais útil dependendo da
estratégia/critérios adotados para selecionar alvos.
9. Assim que tiver encontrado um bom conjunto de parâmetros de construção de modelo, considere
alguns modelos de agregação por bootstrap finais usando todo o conjunto de dados (sem divisão
treinamento/validação). Consulte a seção Reconstrução Final na página 50 para mais informações
10. Se estiver satisfeito com o modelo, você pode desejar usá-lo para pontuar a população adequada.
Normalmente, isso será alcançado usando o qsderive, com um comando, como
qsderive -derivations modelB03T2.00pcR0001.xml
-input deploy.ftr -output deployScored.ftr
onde, deploy.ftr é o focus a pontuar.
11. Posteriormente, você pode pretender adicionar resultados reais ao focus implantado e, em seguida,
traçar um gráfico Qini para o desempenho real do modelo. O comando qsupliftplus -a irá
permitir isso, normalmente, com a seguinte sequência:
cd results20121212-121212
qsupliftplus -a out.xml ../foci/deployScoredplusActual.ftr
Consulte a seção Aplicar modelos Uplift de Agregação por Bootstrap a novos dados na página
22 para mais informações.
Parar o Portrait Uplift
Por várias razões, normalmente não é uma boa ideia parar o Portrait Uplift pressionando
control-C ou algo semelhante. Entre outras consequências indesejadas, isso pode fazer
com que os foci fiquem em estado "bloqueado", dificultando sua utilização.
Um mecanismo adequado para parar consiste em criar um arquivo chamado stop.now no diretório de
resultados. Isso fará com que o software pare logo que seja seguro. Normalmente, isso é bastante
rápido.
Nos sistemas UNIX, a forma mais fácil para fazer isso é usar o comando
touch stop.now
no diretório de resultados.
Nos sistemas Windows, a forma mais fácil é provavelmente copiar e colar params.xml, que já deve
se encontrar nesse diretório e, em seguida, renomear Copy of params.xml como stop.now.
Aplicar modelos Uplift de Agregação por Bootstrap a novos dados
O comando qsupliftplus -a é igualmente fornecido com o Portrait Uplift e pode ser usado para
aplicar um conjunto de modelos uplift previamente construídos com o Portrait Uplift a novos dados.
22
Portrait Uplift 7.0A
Capítulo 2: Executar o Portrait Uplift
Todas as informações-chave sobre uma execução são armazenadas pelo Portrait Uplift no arquivo
especificado pelo parâmetro xmlResultsStem. Como o arquivo é direcionado à saída, ele normalmente
é chamado out.xml.
O comando qsupliftplus -a lê o arquivo de resultados XML out.xml e, com base na informação
contida nele, grava um novo arquivo de resultados XML em um subdiretório que contém, não só os
gráficos Qini para os dados de treinamento e de validação originais, mas também uma linha para os
novos dados ("aplicados").
Como exemplo concreto, suponha que o Portrait Uplift é executado a partir de um diretório chamado
Projects e que, inicialmente, produz a saída no diretório de resultados results20121212-121212
e use foci do diretório foci. No dia seguinte, às 13h13 e 13 segundos, a seguinte sequência de comando
é enviada, iniciando a partir do diretório Projects:
cd results20121212-121212
qsupliftplus -a out.xml ../foci/newdata.ftr
cd results20051213-131313
Estrutura de Diretório Sugerida
Ter conjuntos de dados, parâmetros, resultados (e mais) tudo no mesmo diretório pode ser confuso,
especialmente se forem realizadas várias repetições.
Algumas pessoas gostam de usar uma estrutura de diretório para organizar as coisas.
Dado um projeto chamado ProjectX usando um diretório base ProjectX, pode ser útil criar os
subdiretórios ProjectX/foci, ProjectX/params e ProjectX/runs. Se isso for feito, mas ainda
forem executados comandos a partir do diretório ProjectX, será necessário alterar o
parâmetroresultsDir para runs/results.
Apesar do Portrait Uplift não criar o diretório ProjectX/runs, devido a essa configuração de parâmetro,
o software irá criar corretamente os subdiretórios de resultados como
ProjectX/runs/results20121212-121212.
e assim por diante. Da mesma forma, se seu arquivo de parâmetros for criado com um comando, como
qsupliftplus -s foci/CampaignX.ftr
os parâmetros ficarão corretamente configurados no arquivo de parâmetros para permitir a execução
a partir do diretório ProjectX.
Configurar SAS para chamar o Portrait Uplift
É fornecido um conjunto experimental de macros SAS com o Portrait Uplift para permitir que as operações
principais sejam executadas diretamente de um programa SAS. Para usar essas macros, você deve
configurar sua instalação SAS para carregar o arquivo autoexec em
<pmhome>/ext/upliftplus/autoexec.sas (onde <pmhome> é o diretório de instalação do Portrait
Miner).
Uplift Guia do usuário
23
Executar Portrait Uplift a partir do SAS
Uma forma de fazer isso é configurando o atalho da área de trabalho SAS para usar o arquivo autoexec;
por exemplo:
"C:\Program FilesSASSAS Learning Edition 4.1SAS.exe"
-autoexec "PMHOME\ext\upliftplus\autoexec.sas"
Executar Portrait Uplift a partir do SAS
É fornecido um conjunto experimental de macros SAS com o Portrait Uplift para permitir que as operações
principais sejam executadas diretamente de um programa SAS.
Se o SAS não tiver sido configurado para carregar as macros do Portrait Uplift automaticamente, inclua
linhas em seu código SAS similares às seguintes, onde c:/PortraitMiner é a pasta de instalação
do Portrait Uplift:
libname uplift "c:\PortraitMiner\ext\upliftplus" ;
options mstored sasmstore=uplift ;
Seleção variável a partir do SAS
Uma macro uplift_variable_selection dá acesso à funcionalidade de seleção variável dentro
do Portrait Uplift. Ela assume os seguintes argumentos:
data (Necessário: caminho do arquivo) Localização do conjunto de dados SAS (.sas7bdat) para
análise.
objectiveField Necessário: nome da variável) Nome da variável dependente para análise: consulte a
seção objectiveField (necessário) na página 68.
partitionField (Necessário: nome da variável) Nome da variável de divisão tratada/controlada: consulte
a seção partitionField (necessário) na página 69.
analysisFields (Opcional: lista de nomes de variáveis, separados por vírgulas) Lista de variáveis
independentes a considerar para a seleção variável. Se não estiver presente, serão consideradas todas
as variáveis.
xanalysisFields (Necessário: lista de nomes de variáveis, separados por vírgulas) Lista de variáveis
independentes a excluir de consideração para a seleção variável.
categoricalFields (Opcional: lista de nomes de variáveis separadas por vírgulas) Lista de variáveis a
interpretar como variáveis nominais.
nBestACs (Necessário: integer) Número de variáveis a selecionar: consulte a seção nBestACs
(opcional; padrão: 5) na página 73.
setacsRebin (Opcional: 0 ou 1) se for configurado para 1, otimize a classificação da variável (binning)
baseada na correlação com a elevação: consulte a seção setacsRebin (opcional; padrão: 0) na página
74.
setacsRebinMaxBins (Opcional: inteiro) Número máximo de bins (buckets) a considerar ao otimizar a
classificação de variáveis.
24
Portrait Uplift 7.0A
Capítulo 2: Executar o Portrait Uplift
stratificationField (Opcional: nome da variável) variável a usar para estratificar os dados: consulte a
seção stratificationField (opcional, mas recomendado) na página 69.
Ao completar, será preenchida uma nova pasta de resultados com carimbo de hora ao lado do conjunto
de dados SAS, e os arquivos report.html e results.pdf criados serão abertos automaticamente.
A lista de variáveis selecionadas é devolvida ao SAS na macro &upliftSelVar para ser usada
posteriormente nas chamadas de macros do SAS.
Por exemplo, o script abaixo irá selecionar variáveis a partir do conjunto de dados SAS em
c:\data\DirectBank.sas7bdat, usando a variável TrialRespond como a variável dependente
e TrialMailing como a variável de tratamento, selecionando as três melhores variáveis independentes
entre Age, Income, Gender, MaritalStatus e CardVisa:
libname testlib 'c:\data' ;
%uplift_variable_selection(
data=testlib.DirectBank
,objectiveField=TrialRespond
,partitionField=TrialMailing
,analysisFields="Age,Income,Gender,MaritalStatus,CardVisa"
,nBestACs=3
)
Observação: as listas devem ser separadas por vírgulas e contidas entre aspas duplas.
Construir modelos uplift a partir do SAS
Uma macro uplift_variable_selection dá acesso à funcionalidade de construção de modelo
dentro do Portrait Uplift. Ela assume os seguintes argumentos:
data (Necessário: caminho do arquivo) Localização do conjunto de dados SAS (.sas7bdat) para
análise.
objectiveField Necessário: nome da variável) Nome da variável dependente para análise: consulte a
seção objectiveField (necessário) na página 68.
partitionField (Necessário: nome da variável) Nome da variável de divisão tratada/controlada: consulte
a seção partitionField (necessário) na página 69.
analysisFields (Opcional: lista de nomes de variáveis separadas por vírgulas) Lista de variáveis
independentes a considerar para a construção de modelo. Essa pode ser a macro &upliftSelVar
se executar depois de %uplift_variable_selection. Se não estiver presente, serão consideradas
todas as variáveis.
xanalysisFields (Necessário: lista de nomes de variáveis separadas por vírgulas) Lista de variáveis
independentes a excluir de consideração para construção de modelo.
categoricalFields (Opcional: lista de nomes de variáveis separadas por vírgulas) Lista de variáveis a
interpretar como variáveis nominais.
useExisting (Opcional: 0 ou 1) Sinaliza para usar interpretações de dados existentes e binnings da
execução de seleção variável anterior.
metadata (Opcional: nome do arquivo) Arquivo de metadados do Portrait (.qsfm) para definir as
interpretações a aplicar aos dados antes de construir o modelo.
Uplift Guia do usuário
25
Construir modelos uplift a partir do SAS
params (Opcional: nome do arquivo) Arquivo de parâmetros do Portrait Uplift (.xml) para usar em vez
de os parâmetros da macro.
nBagsValues (Opcional: lista de inteiros contidos entre colchetes) lista do número de sacos: consulte
a seção nBagsValues (necessário) na página 75.
pruneThresholdValues (Opcional: lista de porcentagens contidas entre colchetes) lista de valores
limites de remoção a usar: consulte a seção pruneThresholdValues (necessário) na página 76.
autoPrune (Opcional: 0 ou 1): consulte a seção autoPrune (opcional; padrão: 0) na página 76.
nRuns (Opcional: integer) número de repetições para cada conjunto de parâmetros: consulte a seção
nRuns (opcional; padrão: 1) na página 76.
nLevels (Opcional: integer) profundidade máxima das árvores a construir: consulte a seção nLevels
(opcional; padrão 4) na página 72.
maxTreeAttempts (Opcional: integer) número máximo de tentativas para cada árvore: consulte a seção
maxTreeAttempts (opcional; padrão: 2) na página 77.
minLeafNodes (Opcional: integer): consulte a seção minLeafNodes (opcional; padrão: 4) na página
77.
autoMinPopSize (Opcional: 0 ou 1): consulte a seção autoMinPopSize (opcional; padrão 1) na página
71.
searchMinPopSize (Opcional: 0 ou 1): consulte a seção searchMinPopSize (opcional; padrão 0) na
página 71.
minPopSize (Opcional: integer): consulte a seção minPopSize (opcional; padrão 2000) na página
71.
propAnalysisCandidates (Opcional: percentage) proporção de variáveis independentes a usar: consulte
a seção propAnalysisCandidates (opcional; padrão: 1.0) na página 77.
saveFocusStem (Opcional: string) tronco de nome de arquivos dos conjuntos de dados intermediários
salvos: consulte a seção saveFocusStem (opcional; padrão: (blank)) na página 79.
saveTreeStem (Opcional: string) tronco de nome de arquivos das árvores intermediárias salvas: consulte
a seção saveTreeStem (opcional; padrão: (blank)) na página 80.
tvTrainProp (Opcional: percentage) proporção de dados usados para o conjunto de treinamento:
consulte a seção tvTrainProp (opcional; padrão: 50%) na página 78.
modelType (Opcional: auto | binary | real | twostage): consulte a seção modelType (necessário)
na página 68.
yQiniAxis (Opcional: string) texto a ser usado como rótulo do eixo Qini vertical: consulte a seção
yQiniAxis (opcional; Uplift Cumulativo padrão (pc pt)) na página 71.
outcomeSizeActual (Opcional: nome da variável) variável real do resultado: consulte a seção
outcomeSizeActual (opcional) na página 68.
outcomeSizeEstimate (Opcional: nome da variável) variável estimada do resultado: consulte a seção
outcomeSizeEstimate (necessário para modelos de duas fases) na página 68.
championModelField (Opcional: nome da variável) variável do modelo para sua melhor opção para
comparação: consulte a seção championModelField (opcional) na página 70.
26
Portrait Uplift 7.0A
Capítulo 2: Executar o Portrait Uplift
prngInitialState (Opcional: string) semente aleatória a usar: consulte a seção prngInitialState (opcional)
na página 78.
roiCurrencySymbol (Opcional: string): consulte a seção roiCurrencySymbol (opcional; padrão: $)
na página 81.
roiCostOfTreatment (Opcional: string): consulte a seção roiCostOfTreatment (opcional; padrão:
0.00) na página 81.
roiValueOfBenefit (Opcional: string): consulte a seção roiValueOfBenefit (opcional; padrão: 1.00)
na página 81.
roiCostOfFulfillment (Opcional: string): consulte a seção roiCostOfFulfillment (opcional; padrão:
0.00) na página 81.
Observação: as porcentagens devem incluir o símbolo de porcentagem, por ex. 50%.
Observação: As listas nBagsValues e pruneThresholdValues devem ficar contidas entre aspas
duplas e colchetes, por ex. "[1%,2%]".
Ao completar, será preenchida uma nova pasta de resultados com carimbo de hora ao lado do conjunto
de dados SAS, e o SAS irá criar três relatórios nos formatos PDF, Excel e HTML, contendo tabelas de
resultados de modelos e gráficos Qini. Uma visualização do relatório HTML será exibida no Visualizador
de Resultados SAS.
Por exemplo, o script abaixo irá construir modelos uplift em conjuntos de dados SAS em
c:\data\DirectBank.sas7bdat, usando a variável TrialRespond com a variável dependente e
TrialMailing como a variável de tratamento, usando as variáveis independentes Age, Income,
Gender, MaritalStatus e CardVisa, construindo quatro modelos no total:
libname testlib 'c:\data' ;
%uplift_build_model(
data=testlib.DirectBank
,objectiveField=TrialRespond
,partitionField=TrialMailing
,analysisFields="Age,Income,Gender,MaritalStatus,CardVisa"
,nBagsValues="[1,2]"
,pruneThresholdValues="[1%,2%]"
,nRuns=1
,nLevels=3
)
Modelos uplift de pontuação no SAS
Uma macro uplift_score_model dá acesso à funcionalidade de pontuação de modelos no Portrait
Uplift. Ela assume os seguintes argumentos:
data (Necessário: caminho do arquivo) Localização do conjunto de dados SAS (.sas7bdat) a ser
pontuado.
model (Necessário: caminho do arquivo) Localização do código de modelo SAS (.sas) para pontuar.
outputData (Opcional: caminho do arquivo) Localização do conjunto de dados SAS (.sas7bdat)
pontuado. Se estiver em falta, o conjunto de dados pontuado será criado como uma versão com carimbo
de hora dos dados de origem.
Uplift Guia do usuário
27
Modelos uplift de pontuação no SAS
outputFields (Opcional: lista de nomes de variáveis) Lista de variáveis a criar no conjunto de dados
pontuado além dos campos de pontuação.
force (Opcional: 0 ou 1) Força a substituição de um conjunto de dados de saída existente.
Ao completar, será criado um novo conjunto de dados SAS.
Por exemplo, o script abaixo irá pontuar o conjunto de dados SAS em
c:\data\DirectBank.sas7bdat, usando código de modelos SAS de elevação em
c:\data\results20080208-165048\models\modelB02T1.00pcR0001.sas criando um novo
conjunto de dados em c:\data\results.sas7bdat (e substituindo qualquer conjunto de dados
existente com esse nome) contendo as variáveis HomePostcode, Age e Gender.
libname testlib 'c:\data' ;
%uplift_score_model(
data=testlib.DirectBank
, model="C:\data\results20080208-165048\models\modelB02T1.00pcR0001.sas"
, outputData=testlib.results
, outputFields="HomePostcode, Age, Gender"
, force=1
)
28
Portrait Uplift 7.0A
Capítulo
Visão Geral da Metodologia
Nesta seção:
•
•
•
•
•
•
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Estrutura de Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Desenho de Campanha para Análise Uplift . . . . . . . . . . .31
Preparação de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
Ajuste de Tratamento e Validação de Modelo . . . . . . . . .32
Vários Tratamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
3
Introdução
Introdução
O Portrait Uplift implementa uma metodologia de boas práticas para construir modelos uplift. A própria
metodologia tem duas amplas etapas: a seleção variável, envolvendo a criação de recursos por meio
de binnings otimizados, assim como a redução de variáveis (consulte a seção Seleção Variável e
Metodologia de Binning na página 37), e a construção de modelo (consulte a seção Metodologia de
Construção de Modelo na página 45). Orientação na compreensão de resultados de modelos e
avaliação da qualidade dos modelos na seção Metodologia de Avaliação de Modelo na página 53,
juntamente com uma vista geral de parâmetros-chave de modelagem na seção Diretrizes de Parâmetros
na página 59 e uma referência abrangente na seção Referência de Parâmetros na página 65.
A modelagem uplift é indicada para vários cenários de modelagem, incluindo resultados binários,
resultados contínuos e modelos de duas fases, tal como descrito na seção Estrutura de Modelo na
página 30. No entanto, antes de aplicar o Portrait Uplift, é necessário obter dados históricos de campanha
apropriados. Em uma situação ideal, ocorreria um planejamento antecipado da campanha para maximizar
a eficácia da próxima modelagem uplift. As recomendações para essa abordagem de "design para
análise" estão presentes na seção Desenho de Campanha para Análise Uplift na página 31. Assim
que um conjunto de dados de modelagem fica disponível, ele precisa ser preparado para o Portrait
Uplift, conforme descrito na seção Preparação de Dados na página 32. Quando não ocorre um
planejamento explícito, como é comum acontecer, é fundamental validar que os dados de modelagem
satisfaçam os pressupostos que o Portrait Uplift faz, garantindo especificamente que não existam ajustes
na divisão tratada/controlada que invalidem as predições do modelo. Em alguns casos, é possível que
os ajustes sejam corrigidos usando ponderamento de caso, conforme descrito na seção Ajuste de
Tratamento e Validação de Modelo na página 32.
Estrutura de Modelo
O Portrait Uplift suporta três estruturas de modelo:
• Resultado binário (binary);
• Resultado discreto contínuo ou ordenado (real);
• Duas fases (twostage).
Os modelos de resultado binário são usados para problemas onde existem exatamente dois possíveis
resultados, por ex., ir ou ficar (retenção/desgaste/rotatividade), comprar ou não comprar (confira
"resposta") ou padrão ou não padrão (risco de crédito). É necessário que esse resultado seja representado
por uma variável inteira 0 ou 1. Nesses casos, o modelo uplift prevê a alteração na probabilidade de
1-resultado para cada cliente, por ex., redução da probabilidade de rotação, aumento da probabilidade
de resposta, aumento na probabilidade padrão, etc.
Os modelos contínuos (real) são usados para problemas cujo objetivo é estimular o nível ou tamanho
da atividade do cliente, por ex., aumentar os gastos dos clientes. Aqui, o modelo uplift ajusta diretamente
a alteração no resultado como resultado do tratamento.
30
Portrait Uplift 7.0A
Capítulo 3: Visão Geral da Metodologia
Os modelos de duas fases estão relacionados com os modelos contínuos, mas agora o objetivo da
campanha é aumentar a probabilidade (ou frequência) da atividade do cliente, (por ex., frequência das
compras) ou para aumentar o nível de atividade ao orientar compras ou a frequência da utilização. Aqui,
o modelo uplift é usado para estimar o aumento da probabilidade do resultado, mas isso é depois
combinado com uma estimativa (fornecida) de tamanho do resultado (outcomeSizeActual) caso
aconteça, quando reportar o desempenho de cada modelo.
Não é sempre claro se o principal efeito de um tratamento de estímulo será aumentar o volume das
compras de um cliente (por exemplo) ou a probabilidade de que o cliente vai comprar. Muitas vezes, é
possível obter algum conhecimento ao examinar separadamente a elevação na probabilidade de compra
e a elevação no nível de gastos para compradores. Se a elevação geral em gastos é explicada em sua
maioria por uma elevação na taxa de compra (multiplicada por uma quantidade de compra média),
então, um modelo de duas fases é certamente o apropriado. Se a elevação na probabilidade de compra
for quase zero, um modelo contínuo será certamente o mais indicado. Em outras circunstâncias, pode
ser apropriado tentar um modelo uplift "real" e de duas fases, e possivelmente combinar os dois.
Desenho de Campanha para Análise Uplift
O procedimento recomendado para conceber uma campanha a ser analisada com a modelagem uplift
é:
1. Selecionar a população candidata P para avaliação.
2. Subdividir P aleatoriamente entre uma população tratada e outra controlada. A estratificação (amostra
aleatória de tamanho exato) pode ser usada e pode até ser benéfica na redução do ruído.
3. A modelagem torna-se mais simples se toda a população tratada receber um tratamento idêntico
ou se seus tratamentos forem alocados aleatoriamente. Se não for esse o caso, a modelagem
continua a ser possível, mas é mais complexa e pode ser menos precisa. Consulte a seção Vários
Tratamentos na página 35.
No caso ideal, a menor das duas populações (normalmente a população de controle) será avaliada de
acordo com a seguinte regra:
"Para que as árvores de uplift sejam construídas satisfatoriamente e sejam capazes de detectar variações
de elevação de x%, devemos assegurar que as populações tratadas e controladas sejam grandes o
suficiente para que x% delas representem cerca de 1000 pessoas. Assim, se pretendermos ser capazes
de modelar variações de 1% em elevação, poderemos esperar ter populações de controle e tratadas
de pelo menos 100.000."
No entanto, a Portrait está consciente de que essa regra é muitas vezes violada e o Portrait Uplift foi
formulado para tentar extrair o máximo valor possível dos dados, mesmo quando essa regra é
extremamente violada.
Uplift Guia do usuário
31
Preparação de Dados
Preparação de Dados
Antes da análise de elevação, é necessário que o conjunto de dados de modelagem seja preparado de
forma apropriada da seguinte forma:
• Selecione o campo de objetivo, um campo numérico 0/1 para um modelo binário (por ex., resposta,
rotatividade), ou um campo de valor real para um modelo contínuo (por ex., gasto).
• Selecione o campo de partição, um campo numérico 0/1 onde 1 indica os clientes tratados e 0 indica
clientes controlados. Para obter opções de análise de campanhas com vários tratamentos, consulte
a seção Vários Tratamentos na página 35.
• Observe todos os campos de modelo para sua melhor opção, qualquer campo numérico com o objetivo
de classificar clientes por elevação (valores mais altos indicam uma maior elevação). Isso poderá ser
um modelo de elevação alternativo, um modelo tradicional ou uma segmentação usada anteriormente
para considerar alvos.
• Adicione interpretações categóricas para candidatos de análise, quando necessárias. Recomendamos
que os valores categóricos sejam armazenados como dados inteiros em vez de strings, devido à
maior necessidade de uso de memória do último.
• Faça todas as seleções de registros necessárias para identificar a população de modelagem. Valores
NULOS nos campos de objetivo, tratamento e partição normalmente devem ser excluídos. (Os valores
NULOS em candidatos de análise serão analisados corretamente, sendo possível também serem
divididos como uma categoria separada durante o crescimento da árvore.)
• Se preferir, adicione binnings apropriados aos candidatos de análise, se não pretender otimizar
binnings automaticamente; consulte a seção Seleção Variável e Metodologia de Binning na página
37);
• Se preferir, crie ou indique uma divisão de treinamento-validação fixa contendo valores da string "T"
E "V"; consulte a seção fixedTrainValidateField (opcional) na página 69.
• Se preferir, crie ou indique um campo de ponderação de caso contendo valores numéricos não
negativos; consulte a seção Ajuste de Tratamento e Validação de Modelo na página 32.
Ajuste de Tratamento e Validação de Modelo
A modelagem uplift assume que a única diferença sistemática entre a população tratada e a de controle
é o tratamento que está sendo modelado. Se a divisão de tratamento não for aleatória (por exemplo,
se for possível prever o indicador de tratamento por meio de modelo convencional), os resultados da
modelagem uplift não serão confiáveis.
O Portrait Uplift fornece o Relatório de Validação de Partição automatizado (ou Relatório "Roxo", seção
Relatório de Validação de Partição (o Relatório "Roxo") na página 42) para testar se o indicador de
tratamento surge aleatoriamente com respeito a cada candidato de análise, de forma a alertar o usuário
quanto a possíveis problemas nessa área.
32
Portrait Uplift 7.0A
Capítulo 3: Visão Geral da Metodologia
Muitos tipos de ajustes conhecidos no indicador de tratamento podem ser corrigidos ao especificar um
campo de ponderamento que define um valor de ponderação de caso para cada registro (consulte a
seção userWeightingField (opcional) na página 70). Exemplos desses ajustes incluem:
Ajuste de Tratamento
Frequentemente, diferentes partes da base de clientes são tratadas a taxas diferentes. Desde que o
tratamento em cada segmento seja aleatório, esse ajuste é facilmente ultrapassado por meio de um
ponderamento de caso. Por exemplo, imagine que os três decis de valores da parte superior foram
segmentados a uma taxa de 90%, com os sete decis da parte inferior segmentados a uma taxa de 10%.
Isso faz com que os registros tratados sejam sobre-representados nos decis da parte superior e
sub-representados nos decis da parte inferior.
No geral, assume que temos uma taxa de tratamento que varia (somente) de acordo com um campo
de segmentação conhecido, com uma taxa de tratamento global T e uma taxa de tratamento Ts para
cada segmento s naquele campo. Em seguida, é possível ponderar cada registro tratado em s por T /
Ts e cada registro de controle (não tratado) em s por (1-T) / (1-Ts). Após o ponderamento de caso,
proporciona uma taxa de tratamento constante para todos os segmentos e preserva a contagem de
registros total (ponderada) em cada segmento.
É possível implementar esse tipo de ponderamento como um campo derivado no Decision Studio,
assumindo um campo de segmentação categórico chamado segment e um indicador de tratamento
treatment, usando FDL semelhante a:
create weight := (
q := mean(treatment);
// overall treatment rate
p := mean(treatment) by segment; // rate for this segment
if treatment then q/p else (1-q)/(1-p)
);
Observação: Em casos onde o ajuste de tratamento seja desconhecido, não podendo assim ser
facilmente capturado em somente um campo de segmentação, por vezes ainda é possível
corrigir aproximadamente o ajuste por meio de modelagem do indicador de tratamento.
Nessa abordagem, é construído um modelo de regressão tradicional (por exemplo, usando o assistente
de scorecard) com o indicador de tratamento como o objetivo. (Isso oferece frequentemente uma visão
útil para a compreensão da origem do ajuste.) Ao pontuar os dados de modelagem, é possível gerar
uma probabilidade de "verossimilhança de tratamento" para cada registro. Depois é possível usar essa
probabilidade diretamente no lugar da taxa de tratamento do segmento, Ts, na discussão acima,
produzindo FDL semelhante a:
create weight := (
q := mean(treatment);
// overall treatment rate
p := treatment_probability;
// as predicted by treatment model
if treatment then q/p else (1-q)/(1-p)
);
É evidente que deve ser dada atenção extrema à validação e interpretação de resultados de modelagem
nessa situação!
Segmentação de ajuste
Às vezes, a população disponível para a modelagem constitui uma representação polarizada da população
total que será, posteriormente, pontuada. Nesses casos, é frequentemente desejável reponderar o
arquivo modelado para aumentar sua fidelidade para a pontuação. Por exemplo, imagine um decil de
valor definido ao longo de toda a base de clientes (com números iguais de clientes em cada decil), onde
Uplift Guia do usuário
33
Ajuste de Tratamento e Validação de Modelo
consideramos alvo 90% dos três decis da parte superior (com 10% marcados como controle) e 9% dos
sete decis da parte inferior (com 1% fornecido como controle). Assim, temos uma taxa de tratamento
constante de 90% ao longo do arquivo e podemos construir um modelo uplift em segurança. Contudo,
os decis de valor da parte inferior são sub-representados e nosso modelo pode ser menos preciso aí
(no sentido em que a qualidade de nosso modelo será muito mais influenciada pelo desempenho nos
três decis da parte superior).
Mais uma vez, no geral, presumimos que o ajuste de segmentação é capturado por somente um campo
de segmentação, com uma taxa de alvo Rs em cada segmento s (em nosso exemplo, R=1, nos três
decis da parte superior e R=0,1 nos sete da parte inferior). Simplesmente ponderamos cada registro
por 1/Rs para refletir a população total representada pelo arquivo de modelagem (polarizado).
Para nosso exemplo, seria possível derivar um campo de ponderamento de caso no Decision Studio
por meio de FDL semelhante a:
create weight := (
case
value_decile <= 3:
otherwise:
);
1.0;
10.0;
// we have all high-value customers
// but only 10% of the lower deciles
Combinações de ponderações
Quando é necessário aplicar múltiplas ponderações (digamos, ponderação de segmentação e ponderação
de tratamento) ao mesmo conjunto de dados, deve-se ter especial atenção. Essas ponderações devem
ser determinadas sequencialmente, não de forma independente.
Se houver um campo de ponderação de segmentação weight_target, o campo derivado para o ajuste
de tratamento será:
create t := treatment * weight_target; // weighted value for a treated record
create weight_treat := weight_target * (
q := sum(t) / sum(weight_target); // overall weighted treatment rate
p := ( sum(t) by segment ) / sum(weight_target) by segment ;
// treatment rate for this segment
if treatment then q / p else (1-q) / (1-p)
);
mais uma vez, assumindo um campo de segmentação categórico chamado segment e um indicador
de tratamento treatment.
Amostragem de Resposta Estratificada
Muitas vezes, quando as taxas de resposta são baixas, é considerado desnecessário incluir todas as
instâncias de não respondedor. Por exemplo, o arquivo de modelagem pode conter todos os
respondedores mas somente 10% de não respondedores (selecionados de forma aleatória). Isso não
apresenta qualquer ajuste de tratamento ou de segmentação, mas infla artificialmente a taxa de resposta.
É possível usar uma ponderação de caso para tratar cada registro de respondedor como somente um
cliente e de não respondedor como 10 clientes (1/10%), ou seja,
weight := if response then 1 else 10;
Alternativamente, é possível modelar o arquivo estratificado sem uma ponderação de caso, com a
pontuação final ajustada para refletir a estratificação. Se ω representa a fração de não respondedores
reais que surgem no arquivo de modelagem (1/10 em nosso exemplo), é possível que a probabilidade
34
Portrait Uplift 7.0A
Capítulo 3: Visão Geral da Metodologia
de elevação real pactual esteja relacionada com a pontuação de probabilidade de elevação modelada p
por meio de:
Vários Tratamentos
O Portrait Uplift, conforme é disponibilizado atualmente, está formulado para lidar, primeiramente, com
ações ou tratamentos únicos aplicados a um subconjunto de uma população alvo potencial, escolhida
aleatoriamente, com o restante da população funcionando como controle.
Porém, as empresas muitas vezes testam, ou pretendem testar, diversos tratamentos ou ações
simultaneamente. Referimos essa situação no cabeçalho principal de Vários Tratamentos.
É possível distinguir vários casos.
• O caso mais simples é o que apresenta vários tratamentos diferentes, que foram alocados
aleatoriamente, e o objetivo é compreender qual é a melhor população-alvo e qual é o melhor
tratamento, e não tentar entender especificamente a interação dos dois, por ex., não tentar coincidir
especificamente os tratamentos com as pessoas.
A abordagem mais simples para esse caso é lidar com as duas partes do problema separadamente.
Reunir todos os tratamentos e criar um campo de partição onde 1 agrupa as pessoas que receberam
qualquer tratamento e 0 agrupa pessoas que não receberam nenhum (o controle). Depois, criar um
modelo uplift comum, que irá indicar quais pessoas são mais afetadas positivamente por um tratamento
aleatório.
Avalie separadamente a elevação geral com os controles associados a cada tratamento. É
simplesmente uma questão de calcular o resultado médio mean (objetivo) para cada tratamento
e subtrair o resultado médio para o grupo de controle.
• Talvez, o próximo caso mais simples é aquele onde a alocação de tratamentos é aleatória mas o
objetivo é compreender qual o melhor tratamento para cada pessoa. Desde que o número de
tratamentos seja pequeno, a abordagem preferida aqui passa por compilar conjuntos de dados
separados contendo a população que recebe somente um tratamento, juntamente com todo o grupo
de controle, e construir um modelo uplift separado para cada um. Depois, é possível ao cliente ser
pontuado com cada modelo uplift e tratamento com a maior elevação prevista para que o cliente possa
ser escolhido.
Se o número de tratamentos for maior, mas alguns forem mais comuns que outros, é possível agrupar
os demais tratamentos.
Essa abordagem não irá funcionar com o chamado design fatorial, onde existem diversos fatores a
serem variados (por ex., tamanho do papel, cor do papel e nível de desconto), à medida que o número
de combinação aumenta. Sendo fornecidas ni escolhas para cada uma das decisões de tratamento
Uplift Guia do usuário
35
Vários Tratamentos
k, isso conduz obviamente a modelos
. Se k é 6 e cada escolha é binária, isso leva a um
requisito para 26 = 64 modelos, que não é realista. É possível, no entanto, assumirmos um pressuposto
simplificador de que os fatores de tratamento são independentes. Graças a isso, é possível então
construir um modelo para cada opção de tratamento independentemente, nos dando antes
modelos para construir. Com 10 fatores binários, isso reduz o número de modelos de 64 para 2 × 6
= 12, e com mais fatores, a redução se torna proporcionalmente maior. Os diferentes modelos permitem
que a escolha seja feita separadamente para cada fator para cada cliente, ignorando efeitos de
interação.
• O caso mais complexo é aquele onde existem vários tratamentos que foram alocados de forma não
aleatória.
Nesse caso, é impossível distinguir entre o efeito do tratamento e o efeito da consideração de alvo.
No entanto, é possível um modelo uplift avisar sobre quem considerar alvo dada a estratégia em uso
para alocar tratamentos. É possível usar as variáveis de tratamento como candidatos de análise.
Para usar o modelo resultante, simplesmente calcule a elevação prevista de cada pessoa, depois,
aloque seu tratamento na mesma base usada para alocar tratamentos para a campanha usada para
construir o modelo uplift.
36
Portrait Uplift 7.0A
Capítulo
Seleção Variável e
Metodologia de Binning
Nesta seção:
•
•
•
•
•
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Impacto na Estabilidade do Modelo . . . . . . . . . . . . . . . . .38
Seleção variável automatizada . . . . . . . . . . . . . . . . . . . . .39
Binning Automatizado . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Resultados e Relatórios de Seleção Variável . . . . . . . . .41
4
Introdução
Introdução
O Portrait Uplift cria modelos uplift usando os campos marcados como candidatos de análise no conjunto
de dados de modelagem. Os binnings nesses campos definem os pontos de divisão considerados
durante o processo de crescimento da árvore. Assim, é possível ao conjunto de candidatos de análise
selecionados e aos binnings escolhidos terem um impacto significativo na qualidade dos modelos
produzidos, como discutido na seção Impacto na Estabilidade do Modelo na página 38. É possível
ao Portrait Uplift automatizar o processo de seleção de boas variáveis de candidatos (seção Seleção
variável automatizada na página 39) e escolher binnings de "boa qualidade" para prever elevação
(seção Binning Automatizado na página 40). São criados vários relatórios de diagnóstico durante a
fase de pré-processamento para fornecer conhecimento sobre a validade dos dados, estabilidade da
elevação e perfis relativos a campos (seção Resultados e Relatórios de Seleção Variável na página
41).
Impacto na Estabilidade do Modelo
Tanto a seleção variável como o controle de ajuda do binning, e normalmente o limite, o número de
graus de liberdade permitidos no processo subsequente de construção de modelo, que normalmente
ajuda muito, em parte ao ultrapassar alguns dos problemas associados a testes estatísticos repetidos.
A seleção variável considera somente divisões em limites do bin para variáveis ordenadas e trata as
categorias das variáveis categóricas como indivisíveis, por isso, a escolha do binning é importante.
Apesar de parecer que usando um binning muito estreito (com muitos bins) damos ao software uma
flexibilidade máxima, assim como com outros fatores em situações de alta variação, muitas vezes é
melhor escolher um binning com um número relativamente menor de bins para reduzir a hipótese de
sobreajuste.
Os métodos para avaliar a estabilidade de uma variável para modelagem uplift descritos abaixo dependem
do binning usado, por isso, a seleção variável e a seleção de binnings andam de mãos dadas.
Como regra básica, em situações de alta variação, tendemos a recomendar iniciar com um binning mais
amplo de talvez 5 bins de população igual (20-percentis). Se esses se demonstrarem estáveis, então
pode valer a pena aumentar o número de bins, talvez até 10, mas se for feito, devemos tomar cuidado
para não reduzir os tamanhos da população até ao ponto das estimativas de elevação se tornam
duvidosas.
Mesmo quando são realizados binnings otimizados e seleção variável, é fortemente recomendado que
o usuário dedique tempo para analisar os relatórios criados, considerando uma variável por vez e
verificando se:
•
•
•
•
38
O binning escolhido está estável (use o Campo de Estabilização de Perfil para isso);
A variação na elevação aparenta ser significativa e plausível (use o Perfil de Uplift para isso);
A partição é válida (use o Relatório de Validação de Partição para isso);
Os padrões mostrados nos campos escolhidos e a elevação mostrada sugerem outras variáveis ou
combinações de variáveis que devem ser consideradas para a modelagem.
Portrait Uplift 7.0A
Capítulo 4: Seleção Variável e Metodologia de Binning
Apesar de parecer um clichê falar sobre "lixo que entra, lixo que sai", isso permanece a ser uma
observação importante e só é possível ao usuário fazer uma verificação de integridade à saída da
seleção variável e construção de modelo. O aspecto mais positivo do clichê é que melhorando a qualidade
dos dados de entrada usados para modelagem irá muitas vezes produzir melhorias mesuráveis e
significativas na qualidade de saída (modelo).
Obviamente, enquanto todo o ênfase nessa documentação está na redução do número de graus de
liberdade disponíveis à modelagem limitando o número de candidatos de análise e usando binnings
relativamente mais amplos, o aspecto negativo disso é que a possível potência expressiva dos modelos
é reduzida. Como o controle de ruído é a principal questão na maioria das situações de modelagem
uplift, normalmente é mais benéfico limitar, em vez de expandir, o número de graus de liberdade,
inversamente, o usuário tem de estar consciente de que haverá casos onde isto não irá acontecer e é
possível mexer à vontade em todos os "botões".
Seleção variável automatizada
O Portrait Miner nomeia as variáveis independentes disponíveis para modelagem de candidatos de
análise. Em alguns casos, é aceitável disponibilizar todos os candidatos de análise para a construção
da árvore e confiar que a árvore irá selecionar os que sejam apropriados para a inclusão no modelo.
No entanto, em situações de alta variação, isto é normalmente uma má ideia, em especial se houver
grandes números de candidatos de análise. O problema é que nessas circunstâncias, as divisões que
serão frequentemente escolhidas não são robustas. A remoção irá garantir que as divisões não robustas
1
sejam normalmente removidas, mas não as ávidas natureza dos métodos de construção de árvore
significa que a oportunidade para dividir naquele nó é então perdida e o resultado será geralmente um
modelo ruim.
Por essa razão, o Portrait Uplift contém uma opção auxiliar que seleciona os melhores n candidatos de
análise dos que se encontram disponíveis, com base em uma estimativa conservativa de seu valor
preditivo baseada na métrica Qini (consulte a seção Interpretação de Valores Qini (Q e q0) na página
54).
A seleção variável usa a mesma estrutura do arquivo XML de parâmetros como construção de modelo
e apresentam alguns parâmetros dedicados (consulte a seção Parâmetros da seleção variável na
página 72), em especial:
• nBestACs, o número de candidatos de análise a selecionar;
• saveBestACs, que é 1, se os melhores candidatos de análise forem configurados, eles devem ser
salvos, e 0 ou em branco caso contrário.
1
Os chamados algoritmos "ávidos" são aqueles que tentam maximizar sua vantagem em cada ponto de
decisão e nunca revisitam, reavaliam ou alteram decisões anteriores. A maior parte dos métodos de
construção de árvore tem uma fase de construção ávida, durante a qual, em cada etapa, escolhem a
melhor divisão para segmentar um nó (de acordo com algum critério de divisão). Uma fase de remoção
posterior remove as divisões instáveis, mas não as substitui por alternativas.
Uplift Guia do usuário
39
Binning Automatizado
Binning Automatizado
O Portrait Uplift também tem a capacidade de escolher binnings para campos. Tal como ter candidatos
de análise demais pode prejudicar a qualidade do modelo, permitir que as árvores explorem grandes
números de divisões em variáveis pode ser igualmente prejudicial, especialmente em situações de ruído
elevado que tendem a caracterizar problemas de elevação reais.
O parâmetro que controla o rebinning de campos e, caso seja realizado, a forma como esse rebinning
é efetuado, é o setacsRebin.
• Se setacsRebin estiver configurado para zero (0), o rebinning não é realizado e são escolhidos
somente candidatos de análise.
• Se setacsRebin estiver configurado para 1 (ou qualquer outro inteiro diferente de zero), o software
tentará otimizar o número de bins para todos os candidatos de análise numéricos e categóricos (exceto
campos de datas). O software também irá gravar um arquivo XML, chamado binnings.xml, no
diretório de resultados (seção Parâmetros de relatório e saída na página 79), que pode ser usado
posteriormente para configurar binnings em campos.
• Finalmente, se setacsRebin estiver configurado para o nome de um arquivo XML de binnings, o
software irá configurar os binnings nos campos, conforme especificado nesse arquivo.
Otimizar os Binnings
A forma como o software tenta otimizar binnings para a modelagem uplift é por meio de avaliação de
uma forma especial de estimativa de Qini baixa para cada binning possível de cada campo, considerando
binnings de população igual com (potencialmente) 1 para M bins (não nulos), onde M é controlado pelo
parâmetro setacsRebinMaxBins, que por padrão é 10.
Em princípio, a forma como isso funciona é que um binning é formado, os dados (reamostrados) são
alvo de partição aleatória em oito formas, os bins são classificados em ordem decrescente de elevação
na primeira partição e, em seguida, a Qini (Q) é avaliada nessa e nas sete partições restantes. São
calculados quatro valores para cada binning:
• LQE — a estimativa de Qini baixa nesse caso é μ(Q) - σ(Q)/√n, onde n corresponde ao número de
observações (8, no cenário de base)
• μ (Q) — o valor da Qini média
• MinSE — o menor erro padrão (σ / √n).
• TPAQ — o "ponto de mudança ajustado" de Qini, que é uma variante do cálculo de Qini que penaliza
os pontos de mudança na curva Qini.
Em princípio, em seguida, é possível selecionar um binning com base em qualquer um desses, ou seja,
a mais alta LQE, a Qini média máxima, o mais baixo erro padrão ou o mais alto ponto de mudança
ajustado de Qini (TPAQ). Por padrão, usamos o mais alto TPAQ, mas é possível alterar isso por meio
do parâmetro setacsRebinCriterion (seção setacsRebinCriterion (opcional; padrão: T) na página
74).
Existe um problema grave com ruído, que descobrimos poder ser normalmente ajudado usando trimming
ou winsoring. Existem duas técnicas para reduzir a variação de amostras. Trimming envolve descartar
40
Portrait Uplift 7.0A
Capítulo 4: Seleção Variável e Metodologia de Binning
os N valores extremos da distribuição e winsoring envolve modificar esses mesmos valores extremos,
"fixando-os" no valor no (ou somente dentro do) valor de corte. Uma vez que sempre temos exatamente
oito observações, a implementação de trimming é simplesmente para descartar o valor mais baixo e o
mais alto, e a implementação de winsoring é para fixar o valor do mais alto no segundo mais alto e o
mais baixo no segundo mais baixo. Outro parâmetro, setacsRebinMean, controla esse comportamento
e pode ser configurado para Normal, Trim ou Winsorize.
Como pode ser observado, o número de bins, para binnings de 1 a 10 bins, é apresentado ao longo do
eixo horizontal e a altura dos pontos mostra um valor Qini. Cada círculo cinza representa somente uma
observação. (Tal como indicado no subtítulo, aqui foi usado trimming, por isso o número de observações
sofreu uma redução de oito para seis.) O ponto negro para cada binning representa o valor de Q média
e as barras de erro mostram um erro padrão (σ(Q)/√6, nesse caso.) Três recursos são assinalados em
vermelho. O círculo na parte inferior da barra de erro em nove bins é a mais alta estimativa de Qini
baixa. O disco vermelho é a mais alta Qini média, também visível aqui para 9 bins. A barra de erro
vermelha é o menor erro, que resulta da menor variação.
Onde são apresentados triângulos vermelhos na parte superior ou inferior do gráfico, isso indica que
alguns pontos de dados estão além dos limites do eixo y. Nesse caso, esses estão realmente visíveis,
mas, muitas vezes, isso não se verificará.
Com base nesse gráfico, é evidente que, apesar de usar trimming, a variação permanece elevada e
não é fácil decidir qual o melhor binning desses dados, em particular dado o comportamento
aparentemente anômalo em 8 bins, e um caso poderia ser feito de somente 5, 7 ou 9 bins.
Reutilização de Estimativas de Qini Baixas
Claramente, um efeito secundário de otimizar um binning é que as estimativas de Qini baixa são geradas
para cada campo. É possível forçar o software a reutilizar essas estimativas quando selecionar candidatos
de análise e isso está definido por padrão. O parâmetro que controla isso é o setacsUseRebinLQE
(1 ou 0).
Deve ser salientado que a seleção variável, no geral, avalia as estimativas de Qini baixa várias vezes
e, por isso, podem ser obtidos resultados bastante diferentes por meio dos dois métodos. No geral,
configurar setacsUseRebinLQE para zero (0) irá resultar em binnings mais estáveis, por isso é
aconselhável em situações de ruído elevado.
Deve também ser observado que o binning otimizado não considera o valor de setacsSigmaWeight
e suas LQE são sempre do formato μ - σ/√n.
Resultados e Relatórios de Seleção Variável
Depois da seleção variável ser executada, é possível usar o comando qsupliftresults no diretório
de resultados para gerar um ou mais relatórios. O relatório principal contém um número de seções
autoexplicativas, juntamente com algumas que irão se beneficiar de explicação.
As três tabelas-chave incluídas nesse relatório são:
• Um Perfil de Uplift, que mostra a variação da elevação com cada campo.
Uplift Guia do usuário
41
Perfis de Uplift
• Um Relatório de Validação de Partição, que mostra o grau de estabilidade e, por isso, o grau de
validade da divisão de controle tratada.
• Um Campo de Estabilização de Perfil, que permite avaliar a estabilidade do binning em um campo
no contexto de elevação.
Os três relatórios também podem ser gerados a partir de um conjunto de dados se for usada a opção
-p para qsupliftplus. O formato do comando é
qsupliftplus -p params.xml
com o focus, objetivo e campo de partição, entre outros, especificados no arquivo de parâmetros
params.xml, como de costume (seção Executar o Portrait Uplift a partir da Linha de Comando na
página 18).
O resultado (assim que processado com qsupliftresults) será um arquivo,
reportYYYYMMDD-HHMMSS.html, onde YYYYMMDD corresponde a uma data com oito dígitos e HHMMSS
a um timestamp, por exemplo, report20121212-121212.html, que contém esses três relatórios
para o focus especificado pelo parâmetro focusName.
Ao executar a seleção variável, é possível usar o parâmetro setacsProfile para controlar se esses
relatórios são produzidos para o focus de entrada, para o focus de saída ou para ambos (isto é, se
abrange todos os candidatos de análise ou somente aqueles escolhidos pela seleção variável para a
construção de modelo). Os valores para esses parâmetros são both, input, output ou none ou pode
ficar em branco, o que equivale a escolher none.
Perfis de Uplift
Os Perfis de Uplift mostram a elevação média real como uma função de cada campo. É apresentado
um exemplo na Figura 4. Os campos são listados na mesma ordem em que aparecem no conjunto de
dados.
O Perfil de Uplift é útil para compreender a variação não processada na elevação em cada campo. Note
que, apesar da similaridade visual (proposital), essa tabela difere crucialmente de um Perfil de Pontuação
(seção Perfis de Pontuação na página 57) no qual é apresentada a elevação real, não a prevista.
Relatório de Validação de Partição (o Relatório "Roxo")
É apresentado um Relatório de Validação de Partição na Figura 5. Esse relatório realça, em várias
tonalidades de roxo, quaisquer bins nos quais a proporção tratada/controlada é significativamente
diferente da proporção tratada global. (Os campos são listados em ordem descendente de variação da
proporção tratada/controlada.) A presença de mais de uma ou duas células roxas escuras podem indicar
um problema ou ajuste com a divisão tratada/controlada, que pode invalidar os resultados da modelagem.
Por vezes, é possível corrigir esse ajuste por meio de ponderamento de caso; consulte a seção Ajuste
de Tratamento e Validação de Modelo na página 32.
Campo de Estabilização de Perfil (o Relatório "Drumstick")
É apresentado um Campo de Estabilização de Perfil na Figura 6. O Campo de Estabilização de Perfil
oferece uma forma rápida e eficiente de identificar binnings problemáticos que possam precisar ser
ajustados manualmente. Cada listra colorida mostra a elevação para um segmento aleatório da população.
O objetivo consiste em compreender o grau de estabilidade do binning com relação à elevação. No
42
Portrait Uplift 7.0A
Capítulo 4: Seleção Variável e Metodologia de Binning
caso de um binning estável, cada listra em somente um bin terá uma cor semelhante (e também uma
elevação semelhante). Como pode ser observado, isso ocorre em muitos dos bins aqui apresentados.
Porém, em alguns, isso não acontece. Se houver grande variação em um bin, isso pode indicar que o
binning não é estável e que o melhor seria reduzir o número de bins.
O parâmetro nStabilityPartitions controla o número de listras. Por padrão, são 3 e esse número
deve estar no intervalo 2 — 10.
Uplift Guia do usuário
43
Capítulo
Metodologia de Construção
de Modelo
Nesta seção:
•
•
•
•
•
•
•
•
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Amostragem e Estratificação . . . . . . . . . . . . . . . . . . . . . .46
Agregação por bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . .47
Remoção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
Exploração de Parâmetros Automatizada . . . . . . . . . . . .48
Recomendação de Parâmetros Automatizada . . . . . . . . .49
Reconstrução Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Contaminação de Modelo . . . . . . . . . . . . . . . . . . . . . . . . .50
5
Introdução
Introdução
Assim que as variáveis forem selecionadas e apropriadamente binadas, é possível iniciar a fase de
construção de modelo. Isso envolve, primeiramente, a criação de uma partição de treinamento e de
validação (se não for especificada pelo usuário), com estratificação cuidada para minimizar o ruído
(consulte a seção Amostragem e Estratificação na página 46). Nos dados de treinamento, a
reamostragem é usada para criar conjuntos de dados com diversas variáveis, com uma construção de
modelo de árvore diferente em cada versão e combinados para criar um modelo de agregação por
bootstrap (consulte a seção Agregação por bootstrap na página 47). Cada modelo de árvore é removido
por meio de análise de sua variação nos conjuntos de dados reamostrados novamente para reduzir o
ruído (consulte a seção Remoção na página 48). Os parâmetros-chave usados para fazer crescer
árvores podem ser explorados de forma manual e automática para sintonizar o desempenho da
construção de modelo (consulte a seção Exploração de Parâmetros Automatizada na página 48),
com os melhores parâmetros recomendados automaticamente (consulte a seção Recomendação de
Parâmetros Automatizada na página 49). Muitas vezes, o modelo final é reajustado no conjunto de
dados completo de modelagem (sem dados de validação) usando parâmetros ótimos (consulte a seção
Reconstrução Final na página 50). Embora seja utilizado um processo de treinamento e de validação
rigoroso, sempre é importante considerar possíveis origens de contaminação do modelo (consulte a
seção Contaminação de Modelo na página 50).
Amostragem e Estratificação
Em situações de grande variação, é importante que quando os dados disponíveis para treinamento
estiverem para ser divididos para fins de teste/treinamento/validação, os dados realmente usados para
a construção de modelo sejam representativos do todo. Por essa razão, o Portrait Uplift oferece
amostragem (estratificada) para garantir que os dados sejam o mais representativos possível.
Usamos a terminologia:
• Dados de Validação. Um subconjunto aleatório de todos os dados disponíveis que não é usado durante
o processo de construção de modelo. Os dados de validação somente são usados para apresentar
o desempenho sobre esses dados ("retidos").
• Dados de Treinamento. Todos os dados que não são usados para a validação. Esses dados de
treinamento são, posteriormente, divididos em partições reamostradas de treinamento e de teste.
(Existe, claramente, a possibilidade de confusão entre os dados de treinamento — todos os dados
disponíveis para treinamento — e os dados de treinamento reamostrados — o subconjunto de dados
de treinamento usado na fase de crescimento de uma árvore.)
• Dados de Teste. Subconjuntos reamostrados dos dados de treinamento usados para avaliar o
desempenho da árvore para remoção.
Isso é ilustrado na Figura 7.
A amostragem estratificada é baseada em um campo de estratificação, que divide o conjunto de dados
de modelagem em segmentos, cada um dos quais deve ser equilibrado (por meio de amostragem
46
Portrait Uplift 7.0A
Capítulo 5: Metodologia de Construção de Modelo
aleatória de tamanho exato) ao gerar a divisão de treinamento e de validação. É possível criar o campo
de estratificação automaticamente, como parte do processo de seleção variável, ou ele pode ser fornecido
pelo usuário (consulte a seção stratificationField (opcional, mas recomendado) na página 69). De
qualquer das formas, o campo é normalmente produzido com uma derivação, como
segindex() by Objective, Partition, BestPredictor
onde Objective e Partition correspondem aos campos de objetivo e de partição, respectivamente, e
BestPredictor é um campo altamente preditivo de elevação. Se o preditor da parte superior não apresentar
muitos bins, pode ser interessante estratificar também o preditor seguinte, objetivando um número total
de bins (não vazios) no campo de estratificação entre 20 e 60.
Observação: A estratificação é definida pelo binning no campo de estratificação, e não pelos valores.
Na prática, isso significa que, normalmente, deve ser categórica.
Observação: Ao usar um ponderamento de caso (consulte a seção userWeightingField (opcional)
na página 70), a amostragem aleatória de tamanho exato não resulta, garantidamente,
em uma amostra perfeitamente equilibrada, em particular no caso de grande variação
em valores de ponderação de caso. Uma vez que a amostragem continua com "altos e
baixos", nessas situações pode ser útil classificar o conjunto de dados de modelagem
por ponderação inversa, para garantir que os maiores registros ponderados apareçam
em primeiro lugar.
Agregação por bootstrap
Os modelos construídos pelo Portrait Uplift são "agregados por bootstrap", uma vez que são uma
combinação de vários modelos de árvore individuais. A agregação por bootstrap é um método para
tentar "fazer com que os dados cheguem mais longe" para fins de modelagem quando esses são
escassos. A ideia básica consiste em reamostrar os dados de treinamento k vezes e construir k modelos
e, em seguida, combinar seus resultados de alguma forma — normalmente, calculando somente a
média. Isso conduz normalmente a uma maior robustez de modelo.
train
Dado um conjunto de dados de treinamento T de tamanho N, um conjunto de dados reamostrados T
do mesmo tamanho é construído retirando repetidamente um membro escolhido de forma aleatória dos
train
dados de treinamento T, colocando-o na população reamostrada T
e substituindo-o, seguidamente,
em T (amostragem com substituição). Esse procedimento é repetido N vezes. Obviamente, no geral,
train
alguns registros serão repetidos em T
e alguns estarão ausentes. Versões reamostradas diferentes
do mesmo conjunto de dados terão frequências diferentes para os registros, incentivando modelos
construídos nas várias versões reamostradas a se "concentrarem" em ajustar diferentes partes do
conjunto de dados. O Portrait Uplift implementa a reamostragem com substituição, gerando campos de
ponderação de caso aleatórios.
O Portrait Uplift usa uma variável nBags para especificar o número de modelos a combinar. Essa variável
é configurada a partir do parâmetro do usuário nBagsValues (seção nBagsValues (necessário) na
página 75). Atualmente, a predição final é formada ao combinar as predições de árvore individual, por
meio de média aritmética simples.
Uplift Guia do usuário
47
Remoção
Remoção
O método de remoção fornecido com o Portrait Miner é uma variação da remoção por complexidade
de custos padrão, usando Qini como uma medida (inversa) de custos. Isso não é eficiente em situações
de grande variação para as quais o Portrait Uplift foi desenvolvido.
O Portrait Uplift implementa um método de remoção baseado na variação, no qual são removidas as
divisões que dão origem a nós filhos que apresentam uma grande variação de elevação no conjunto
de cópias reamostradas dos dados de treinamento.
A remoção é controlada por um conjunto de parâmetros descritos na seção Parâmetros de controle
de remoção na página 76. Desses parâmetros, o mais importante é a variável pruneThreshold, que
é configurada pelo parâmetro do usuário pruneThresholdValues (seção pruneThresholdValues
(necessário) na página 76).
Se os limites de remoção forem configurados muito baixos, podem ser geradas árvores excessivamente
pequenas. O software possui parâmetros adicionais para permitir um número de reconstruções nessa
situação, primeiro mantendo o limite de remoção constante e, em seguida, aumentando-o.
É possível usar um parâmetro autoPrune (seção autoPrune (opcional; padrão: 0) na página 76)
para configurar automaticamente somente um valor em pruneThresholdValues.
Exploração de Parâmetros Automatizada
O loop principal da construção do modelo uplift tem o seguinte formato (em pseudocódigo):
for nBags in nBagsValues:
for minPopSize in minPopSizeValues
for pruneThreshold in pruneThresholdValues:
for i = 1, 2, ..., nRuns:
Build Uplift Model
onde, nBagsValues é um conjunto de valores para nBags, minPopSizeValues é um conjunto de
valores gerado internamente para minPopSize, pruneThresholdValues é um conjunto de valores
para pruneThreshold e nRuns é o número de repetições a realizar para cada valor do número de
sacos e limite de remoção.
Isso faz com que seja mais fácil configurar um conjunto de repetições em lotes e realizar uma pesquisa
de parâmetros de tamanhos mínimos de população, limites de remoção e número de sacos.
48
Portrait Uplift 7.0A
Capítulo 5: Metodologia de Construção de Modelo
Recomendação de Parâmetros Automatizada
O Portrait Uplift inclui uma recomendação dos "melhores" parâmetros de modelo, se existirem, no
arquivo out.xml. Os parâmetros de modelo recomendados são escolhidos da seguinte forma:
• Se não existirem dados de validação, não são recomendados parâmetros de modelo. Caso contrário,
cada grupo de modelos construídos usando os mesmos parâmetros é analisado para determinar:
• O número de modelos no subgrupo aprovados em um teste de validação. Por padrão, um modelo
é "válido" se o Qini de validação for inferior a ±20% de seu valor Qini de treinamento.
• Se os modelos no subgrupo são ou não aprovados em um "teste de consistência". Por padrão, um
grupo de modelos é consistente se o erro padrão dos valores Qini de validação for inferior a 20%
da média desses valores.
• Se, no mínimo, n de m modelos (onde, por padrão, n corresponde a 3 e m a 4) forem aprovados no
teste de validação e os modelos válidos forem coletivamente aprovados no teste de consistência, o
grupo é um candidato a "melhor".
Se nenhum grupo satisfizer os critérios acima, não são recomendados parâmetros de modelo.
• Se um ou mais grupos satisfizerem os critérios acima, o grupo que contiver os melhores "valores de
qualidade", para os modelos que foram aprovados no teste de validação, é marcado como
recomendado.
Quando o usuário fornecer parâmetros financeiros, conforme descrito anteriormente nesse documento,
o "valor de qualidade" usado para avaliar o melhor modelo é o valor de lucro do pico mais elevado
(média dos modelos que foram aprovados no teste de validação) calculado por meio dos parâmetros
financeiros. Esse cálculo exclui o ponto final na curva de lucro (isto é, considera todos os clientes
como alvo), uma vez que esse valor não é útil para diferenciar um modelo de outro.
Se o usuário não tiver fornecido valores financeiros, o Qini de validação médio mais elevado é usado
para indicar o melhor modelo.
Quando é efetuada uma recomendação, um arquivo recommended_params.xml indica que é adequado
para executar a construção de modelo final usando os parâmetros identificados como "melhores"'. Esse
arquivo é gravado no diretório de saída, em conjunto com 'out.xml', e é configurado para o passo de
"reconstrução final" (consulte a seção Reconstrução Final na página 50) de forma que:
•
•
•
•
•
nRuns = 1
nBagsValues = [20]
tvTrainProp = 1,0
autoPrune = 0
pruneThresholdValues = o valor limite da melhor repetição
• autoMinPopSize = 0
• searchMinPopSize = 0
• minPopSize = o minPopSize da melhor repetição
Uplift Guia do usuário
49
Reconstrução Final
Reconstrução Final
Nosso objetivo na modelagem é aproveitar ao máximo os dados que temos disponíveis para nos ajudar
a construir o melhor modelo possível. Normalmente, escolhemos sacrificar alguns dos dados que
podemos usar durante a construção de modelo na "validação". Fazemos isso porque reconhecemos o
perigo de sobreajustar os dados que usamos diretamente na construção de modelo e queremos isso.
Ao tentar criar modelos, nos quais o desempenho (especificamente, o desempenho Qini) é semelhante
em nossos conjuntos de dados de treinamento e de validação, reduzimos o risco de sobreajuste, a
custo de negar o acesso a nosso processo de construção de modelo a alguns de nossos escassos
dados. No entanto, se tudo o resto se mantiver igual, esperamos ser capazes de construir modelos mais
precisos se usarmos todos os dados e reduzir a probabilidade de sobreajuste ao usar mais dados.
Dessa forma, sugerimos o uso de uma divisão treinamento/validação para um conjunto de repetições,
nas quais os parâmetros-chave de modelagem são explorados, incluindo, em particular, o limite de
remoção e os tamanhos mínimos de população para as árvores. Assim que for encontrado um bom
conjunto de parâmetros, que pareça contribuir para um bom desempenho de validação, recomendamos
uma ou mais construções finais, normalmente com um maior número de sacos (árvores por modelo),
com a proporção de treinamento configurada para 100%, a fim de não existirem dados de validação.
Para isso, todos os demais parâmetros podem se manter os mesmos, exceto o tamanho mínimo de
população, que deve ser aumentado na mesma quantidade dos dados de treinamento. Por exemplo,
se tiver usado a proporção de treinamento padrão de 66%, você pode pretender multiplicar o tamanho
mínimo da população em aproximadamente 1.5 (100/66).
O objetivo de construir mais de um modelo "final" é simplesmente verificar se o desempenho é estável;
em condições ideais, todos os modelos finais devem produzir pontuações semelhantes para a grande
maioria dos clientes.
Contaminação de Modelo
O Portrait Uplift utiliza uma metodologia de treinamento/validação rigorosa, conforme descrito na seção
Amostragem e Estratificação na página 46. Ainda assim, vale a pena abordar a contaminação de
modelo. Isso ocorre quando os dados do conjunto de validação são acessados durante a construção
de modelo e pode reduzir a robustez de modelos (em termos de capacidade para generalizar futuros
dados invisíveis). Muitas vezes, a contaminação é sutil e tem somente consequências menores, mas
o usuário deve estar ciente de sua possibilidade e tomar medidas pertinentes para a combater, se for
apropriado.
Abaixo são apresentadas algumas possíveis origens de contaminação:
• Se um modelo for selecionado a partir de modelos candidatos com base em seu desempenho nos
dados de validação (metodologia padrão), existe algum grau de contaminação porque a escolha de
modelo foi indicada pelos dados de validação. Esse efeito é reduzido, desde que somente um número
modesto de modelos seja comparado dessa forma. Teoricamente, uma melhor metodologia consiste
em usar os dados de validação em um conjunto de repetições comparáveis para selecionar parâmetros
50
Portrait Uplift 7.0A
Capítulo 5: Metodologia de Construção de Modelo
para a construção de um modelo e então construir um novo modelo, abrangendo toda a população,
usando esses parâmetros (escalados, se apropriado).
• Recomendamos a estratificação, não somente em variáveis de tratamento e de resultado, mas também
em, pelo menos, uma variável-chave driver (consulte a seção Amostragem e Estratificação na
página 46). Uma forma natural de selecionar essa variável driver é explorar os dados. Porém, uma
vez que o resultado dessa exploração será determinar as variáveis de estratificação a usar na definição
da divisão treinamento/validação, existe aqui um elemento inevitável de contaminação. Esperamos,
contudo, que essa seja muito reduzida. No entanto, na teoria, esse procedimento deve ser evitado
se toda a contaminação for rejeitada, nesse caso, as variáveis driver para a estratificação teriam de
ser selecionadas de outra forma ou omitidas.
• Tecnicamente, os candidatos de análise devem ser selecionados com base somente no desempenho
nos dados de treinamento. Se todos os dados (Treinamento mais Validação) forem usados para a
seleção variável, existe algum grau de contaminação, mas é normalmente muito reduzido. A abordagem
de estratificação no preditor da parte superior torna mais difícil evitar essa contaminação menor. Se
o usuário estiver particularmente preocupado com isso, pode querer separar os dados de treinamento
e de validação em arquivos separados e usar somente o arquivo de treinamento para a seleção
variável. Um arquivo combinado com um campo treinamento/validação pode, então, ser usado em
conjunto com o parâmetro fixedTrainValidateField para permitir que o software produza
relatórios sobre o desempenho de treinamento e de validação.
Uplift Guia do usuário
51
Capítulo
Metodologia de Avaliação de
Modelo
Nesta seção:
•
•
•
•
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Interpretação de Valores Qini (Q e q0) . . . . . . . . . . . . . . .54
Interpretação das Curvas Qini . . . . . . . . . . . . . . . . . . . . . .55
Resultados e Relatórios . . . . . . . . . . . . . . . . . . . . . . . . . . .56
6
Introdução
Introdução
As saídas primárias da construção de modelo do Portrait Uplift são
• As estatísticas Qini (para dados de treinamento, de validação e combinados e, opcionalmente, também
para um modelo "melhor opção");
• A curva Qini (um gráfico de ganhos de elevação);
• Um relatório de modelo, incluindo uma representação gráfica do modelo;
• Os clientes pontuados;
• FDL representando cada modelo de agregação por bootstrap, armazenado no XML do Portrait
incorporado em FDL, como usado pela ferramenta de pontuação qsderive.
Gráficos e valores Qini são discutidos detalhadamente em um documento separado, mas discutimos
aqui especificamente a interpretação dos valores Q e q0.
Interpretação de Valores Qini (Q e q0)
Os coeficientes Qini Q e q0 são medições do grau de eficiência do modelo em classificar clientes por
elevação. Uma vez que não sabemos a real diferença em resultados de nenhum cliente individual, isso
somente pode ser avaliado com base na segmentação.
O verdadeiro valor Qini Q executa de 100% (no caso de um modelo perfeito), passando por zero em
um modelo aleatório, até -100% no caso de um modelo perfeito invertido. Devido à possibilidade de
elevação negativa em alguns segmentos, o modelo teoricamente ideal pode dar origem a mais respostas
se for considerado alvo uma subpopulação do que se for considerada alvo toda a população. Os modelos
reais são avaliados dividindo a área delimitada pela sua curva Qini e a diagonal pela área comparável
do modelo ideal. Como resultado, os verdadeiros valores Qini para modelos uplift reais e bons são
frequentemente muito pequenos porque, apesar de os efeitos negativos poderem ocorrer, e ocorrerem
no mundo real, eles geralmente ocorrem com muito menos frequência que o teoricamente possível.
O Portrait Uplift registra dois valores Qini em muitos casos — Q e q0 . O valor q0 é calculado da mesma
forma que o valor Q, mas em vez de dividir pela área do modelo teoricamente ideal, o q0 divide pela
curva de elevação perfeita , assumindo que não existem efeitos negativos. (Por essa razão, por vezes,
chamamos q0 de "Zero Downlift Qini" e, por isso, usamos o subscrito 0.)
Os valores de q0 são mais idênticos aos valores Gini (ROC) tradicionais, mas com uma diferença
importante: se existirem efeitos negativos nas porções da população, os valores q0 podem exceder os
100% (e descer até aos -100%).
Quando o efeito global de um tratamento por toda a população é muito pequeno (próximo de zero), o
valor q0 fica muito grande e, se a elevação global for exatamente zero, o q0 normalmente se torna
infinito. Nesse caso, o valor q0 apresentado será zero e irrelevante. Essa é uma das razões por que a
medida total Qini, Q, é igualmente reportada.
54
Portrait Uplift 7.0A
Capítulo 6: Metodologia de Avaliação de Modelo
É importante estar ciente de que, uma vez que o valor q0 tem efetivamente a elevação global como
parte de seu denominador, até mesmo pequenas mudanças na elevação global podem ter um amplo
efeito nos tamanhos de Qini e esses não são fáceis de comparar entre problemas.
Interpretação das Curvas Qini
A curva Qini é discutida em detalhe em um documento de acompanhamento chamado "A Medida de
Desempenho Qini para Modelos Uplift", mas algumas propriedades-chave são discutidas aqui.
Uma Curva de Ganhos para Elevação
Fundamentalmente, a curva Qini é um gráfico de ganhos para elevação. Quanto a um gráfico de ganhos
padrão, a população está classificada (ordenada), em primeiro, de "melhor" a "pior" com base em um
modelo. Depois, o eixo horizontal mostra a proporção da população alvo, no pressuposto de que a
"melhor" população será a primeira analisada (isto é, à esquerda).
Depois, o eixo vertical mostra uma estimativa da elevação total cumulativa (normalizada) obtida ao
considerar alguma população como alvo. É crucial entender que essa elevação é sempre quantificada
relativamente a toda a população.
Eixo Vertical para Resultados Binários (pc pt)
No caso de um modelo binário, a elevação cumulativa é expressa como uma porcentagem da população
total — isto é, em "pontos de porcentuais" da elevação. Por exemplo, considere um problema com uma
população de 100.000 onde uma resposta é uma compra e existe uma taxa de compra geral no grupo
de controle de 5%. Então, um ponto a (30%, 10%) em uma curva Qini significa que se os melhores 30%
da população são considerados alvo, haverá uma elevação de 10 pontos porcentuais sobre toda a
população, isto é, uma taxa de compra geral de 5% + 10% = 15% de 100.000 = 15.000, um aumento
de 10.000 compras.
Isso não significa uma elevação de 10% em 30% da população, isto é, somente 3000 compras extra.
Eixo Vertical Para Resultados Contínuos (photp)
Da mesma forma, no caso de um resultado contínuo, com o tamanho da compra, o eixo vertical mostra
a elevação média por cabeça da população total. Um ponto na curva Qini a (30%, $35) significa que
se os melhores 30% da população fossem considerados alvos, haveria uma elevação de $35 por cabeça
da população total.
Assim, com uma população total de 100.000 e um nível de compra médio no grupo de controle de $100,
a receita total ao não considerar ninguém alvo seria $100 × 100.000 = $10.000.000. Se 30% fossem
considerados alvo, o valor de compra médio iria aumentar para $100 + $35 = $135, por isso, a receita
total seria $135 × 100.000 = $13.500.000, e iria aumentar $3,5 milhões.
De novo, não significa um aumento de $35 por cabeça para 30% da população, isto é, $1,05 milhões.
Os rótulos padrão para o eixo vertical de um resultado contínuo incluem (photp), o que significa "por
cabeça da população total".
Uplift Guia do usuário
55
Curva Qini como um Diagnóstico
Curva Qini como um Diagnóstico
Na avaliação e comparação de desempenho do modelo, é fortemente recomendado que a curva Qini
seja examinada, assim como o valor q0. As propriedades de modelos robustos incluem:
• Monotônico ou de pico único. Em condições ideais, a curva Qini deve subir até um pico único (ou cair
em somente um declive). Se esse pico (ou declive) não estiver a 100%, deve então cair (ou subir)
para o valor de 100% a 100%. Apesar de serem aceites oscilações menores, normalmente, as
oscilações maiores apontam para um modelo instável.
• Proximidade das curvas de treinamento e validação. Naturalmente, o objetivo é que as curvas Qini
estejam próximas umas das outras para os conjuntos de treinamento e validação. Com a opção entre
dois modelos, é geralmente mais seguro escolher o que possui melhor correspondência entre
desempenho de validação e treinamento do que um com melhor desempenho absoluto.
Apesar dessa recomendação geral, o desempenho de validação tende a ser mais fraco com a
modelagem do Portrait Uplift quando comparado à modelagem convencional porque
1. A elevação é um efeito de segunda ordem, difícil de medir com precisão e ainda mais difícil de
modelar;
2. O Portrait Uplift tende a ser usado especificamente em situações onde volumes de dados são
limitados, tornando a validação muito menos confiável;
3. Os conjuntos de dados de validação são muitas vezes menores que os conjuntos de dados de
treinamento, aumentando o erro inerentemente.
• Seleção de Corte. Em princípio, o corte ideal está no ponto máximo (ou mínimo) do gráfico se o
objetivo for simplesmente maximizar o número total de "respostas" adicionais. No entanto, cortar no
ponto máximo (ou mínimo) não é sempre a opção mais segura. Deve ser lembrado que, no geral, a
classificação de dados que não sejam dados de treinamento por modelos, tende a ser mais fraca que
a classificação de dados de treinamento, assim (se não houver efeitos negativos), será necessário
considerar mais pessoas como alvo mais vezes que o estritamente previsto pelo modelo de forma a
atingir a maior elevação cumulativa atual.
Porém, se os custos forem considerados, a seleção de corte é mais complexa.
Todas essas observações são somente diretrizes e o melhor curso de ação é fortemente dependente
de problemas e situações.
Resultados e Relatórios
Os resultados de um conjunto de repetições de construção de modelo são armazenados em um arquivo
XML, frequentemente chamado out.xml. O pós-processamento é realizado para transformar esse
arquivo XML em um conjunto de gráficos Qini como um arquivo PDF e um conjunto de relatórios modelo
como um arquivo HTML. Além disso, somente para a seleção variável, é possível criar um relatório
Excel.
Se estiver executando a partir do Portrait Miner, eles serão produzidos automaticamente, sendo exibida
a versão Excel.
56
Portrait Uplift 7.0A
Capítulo 6: Metodologia de Avaliação de Modelo
Se estiver executando a partir da linha de comandos, os relatórios serão produzidos executando o
comando
qsupliftresults
para o relatório html ou o comando
uogenreport
para o relatório Excel.
No caso do relatório Excel, existe um limite no número de modelos e conjuntos de
parâmetros suportados pela estrutura dos relatórios. Existe um limite de 64 conjuntos de
parâmetros e um limite de 320 modelos.
A documentação abaixo descreve o relatório HTML. O relatório Excel contém informações similares
mas também exibe gráficos e números financeiros com base nos parâmetros ROI fornecidos ao executar
a seleção variável. Porém, na planilha Excel resultante, esses parâmetros financeiros (células realçadas
a amarelo) podem também ser editados "após o fato" e os gráficos irão se atualizar em conformidade.
O arquivo PDF contém gráficos Qini, parecidos com esse:
O relatório modelo contém um número de tabelas que podem necessitar de alguma explicação.
Perfis de Pontuação
Os relatórios modelo contêm um Perfil de Pontuação (Figura 8). Ele apresenta a tabela com todos os
campos usados na árvore de agregação por bootstrap, classificados do mais importante para o menos
importante. O número em cada caixa mostra a elevação média prevista ("pontuação") alocada aos
relatórios (clientes) no bin para o campo em questão e o código de cor, usando uma escala de "mapa
de calor", mostra a mesma coisa (uma chave para essa escala é apresentada no topo do relatório).
Uplift Guia do usuário
57
Relatório de Validação de Partição (o Relatório "Roxo")
Por isso, no exemplo, a variável mais importante é a BehaviourSeg e as pontuações médias mais
elevadas são dadas a clientes baixos e de SMS (cerca de + 11.6% cada), enquanto a pontuação média
mais baixa é fornecida ao segmento mais Elevado (-8.94%). O ponto médio da escala, em amarelo, é
configurado para a elevação global para a população; vermelho está acima da média e azul abaixo da
média. Os bins pequenos e os bins com valores de elevação indefinidos são de cor cinza.
É importante notar que o Perfil de Pontuação descreve o efeito de pontuar usando o modelo, mas não
define o modelo. O valor em uma célula, como -8.94% no segmento Elevado, não significa que a
pontuação do cliente é reduzida por essa quantidade por pertencer ao Segmento Elevado: em vez disso,
significa que a elevação média prevista alocada para todos os clientes nesse segmento é de -8.94%.
Relatório de Validação de Partição (o Relatório "Roxo")
O Relatório de Validação de Partição da construção de modelo é o mesmo que para a seleção variável
e é descrito na seção Relatório de Validação de Partição (o Relatório "Roxo") na página 42.
No caso do relatório Excel, o número de bins por campo exibido na página da validação
de partição e na Pontuação de Perfil por modelo está limitado a 100. Se um campo tiver
mais de 100 bins e for usado no modelo, será apresentada uma mensagem de aviso nesses
relatórios para esse campo em particular.
Ponderações Divididas
Sempre que o Portrait Uplift completa a construção de um modelo de agregação por bootstrap, reporta
alguma informação sobre o desempenho Qini q0 e também o grau de importância de cada campo usado,
por exemplo:
Nome do Campo
Importância
u1
1.0833
n12
0.5833
c11
0.4167
u5
0.2917
c10
0.0417
O cálculo desses valores é efetuado da seguinte forma. Para somente uma árvore, um campo usado
n-1
para dividir nós no nível n recebe uma ponderação de 1/2 , isto é, a divisão superior tem uma
ponderação de 1, divide no nível seguinte e tem uma ponderação de 0,5, etc. É possível que os campos
atinjam uma ponderação de mais de um ao surgirem no primeiro nível e níveis inferiores da árvore, as
ponderações são somadas por toda a árvore. Dado um determinado modelo de agregação por bootstrap
com N árvores, as ponderações são simplesmente a média ao longo do conjunto de modelos.
58
Portrait Uplift 7.0A
Capítulo
Diretrizes de Parâmetros
Nesta seção:
•
•
•
•
•
•
•
•
•
•
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Limite de remoção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Tentativas de Árvores Máximas . . . . . . . . . . . . . . . . . . . .61
Níveis de Divisão de Árvores . . . . . . . . . . . . . . . . . . . . . . .61
Tamanhos Mínimos de População . . . . . . . . . . . . . . . . . .61
Número Mínimo de Nós por Árvore . . . . . . . . . . . . . . . . .62
Candidatos de Análise e Binnings . . . . . . . . . . . . . . . . . .62
Número de Sacos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
Número de Repetições . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Campo de Estratificação . . . . . . . . . . . . . . . . . . . . . . . . . .63
7
Introdução
Introdução
Apesar de o Portrait Uplift automatizar grande parte do processo da seleção de parâmetros de modelagem
uplift de boa qualidade, pode ser possível melhorar ligeiramente nessas configurações padrão em alguns
aplicativos. É difícil proporcionar uma orientação geral para melhorar configurações de parâmetros,
uma vez que esses são obrigatoriamente dependentes do problema a ser abordado e do tamanho e
estrutura dos dados disponíveis. Em vez disso, proporcionamos algumas orientações e regras básicas
como pontos de partida para exploração.
Os parâmetros que talvez apresentem o maior impacto são:
•
•
•
•
•
•
•
•
•
O limite de remoção;
O número máximo de tentativas de árvore
Níveis de divisão de árvores;
Os tamanhos mínimos de população;
O número mínimo de nós por árvore;
Os candidatos de análise e os binnings;
O número de sacos (ou seja, árvores por modelo de agregação por bootstrap).
O número de repetições (isto é, o número de repetições aleatórias com cada conjunto de parâmetros)
O campo de estratificação
Eles interagem de várias formas, mas abordaremos cada uma delas resumidamente.
Limite de remoção
O limite de remoção controla a compensação entre o tamanho da árvore (e, por isso, da precisão
possível) e a estabilidade de predições. Quando o usuário determina um tamanho mínimo de árvore, é
normalmente desejável remover de forma bastante agressiva em direção a esse tamanho.
Na prática, por isso, temos tendência para considerar que uma boa abordagem consiste em usar o
limite de remoção mais baixo que não resulta na rejeição de um número de árvores inaceitável por
possuir um número demasiado reduzido de nós após a remoção. Normalmente, é eficiente ter 50 —
75% de construções de árvores sendo rejeitadas.
A informação sobre o desvio padrão em elevação apresentada pelo software é útil para a configuração
desse parâmetro. Na prática, para problemas binários, os valores no intervalo 0,5% a 3.0% parecem
normalmente ser os mais eficientes, embora tenhamos observado problemas, nos quais valores tão
baixos como 0,1% e tão elevados como 5% funcionaram bem.
Para problemas contínuos, é difícil especificar um valor numérico típico, uma vez que esse valor depende
da escala dos dados e da variação nesses mesmos dados. Uma forma de ter uma noção do intervalo
de variação subjacente nos dados é observar as tabelas de referência cruzada para dividir os dados
por meio de um campo aleatório e alguns candidatos de análise arbitrários. É improvável que seja obtido
sucesso ao configurar o limite muito abaixo da escala natural de variação aqui apresentada.
60
Portrait Uplift 7.0A
Capítulo 7: Diretrizes de Parâmetros
Tentativas de Árvores Máximas
Isso está claramente vinculado ao limite de remoção. Limites de remoção baixos tendem a exigir valores
mais elevados para isso. Embora o padrão seja 2, se a remoção não for excessiva, ele pode, muitas
vezes, ser aumentado de forma útil para cerca de 5.
Níveis de Divisão de Árvores
Encontra-se normalmente no intervalo 3 — 5, sendo 4 um valor comum. Árvores com mais níveis de
profundidade podem permitir divisões "desbalanceadas" mas, tipicamente, irão levar a um sobreajuste,
a menos que combinado com um tamanho mínimo de população para restringir o número total de filhos.
Tamanhos Mínimos de População
O tamanho mínimo de população restringe os nós filhos da árvore para ter, no mínimo, a quantidade
especificada (ponderada) de registros de tratamento e de controle. Assim, é a população menor (na
maior parte dos casos, o grupo de controle) que ativa a restrição.
Obviamente, o tamanho mínimo da população interage com a profundidade da árvore e com o número
mínimo de nós por árvore.
n
Para uma árvore com n níveis de divisões (n+1 níveis de nós), a população média de filhos será 1/2
da população total, mas pode existir uma variação considerável devido a divisões desiguais.
Concretamente, suponha que temos uma população de controle de 60.000, com divisão
treinamento/validação igual (isto é, tvTrainProp=50%). Se planejarmos 3 níveis de divisões, teremos
(potencialmente) 8 nós filhos e a população de controle média será um pouco abaixo dos 4.000. Ao
contrário, para explorar divisões muito assimétricas, onde poderíamos dividir somente um bin com talvez
3
20% da população até três vezes, teríamos de permitir a possibilidade de somente 1/5 da população
(225) em um nó filho. Obviamente, isso seria provavelmente muito pequeno pelo que escolheríamos
algum valor intermediário.
Mais uma vez, é difícil fornecer diretrizes concretas, mas raramente configuramos tamanhos mínimos
da população inferiores a 500 e normalmente esses se encontram entre 1.000 — 3.000.
Normalmente, recomendamos iniciar com a sugestão de tamanho mínimo automática gerada pelo
Portrait Uplift com o parâmetro autoMinPopSize (consulte a seção autoMinPopSize (opcional;
padrão 1) na página 71) e varie a partir desse valor.
Uplift Guia do usuário
61
Número Mínimo de Nós por Árvore
Número Mínimo de Nós por Árvore
Claramente, esse número interage amplamente com o limite de remoção e também com o número de
tentativas efetuadas pelo software com cada limite de remoção antes de o aumentar.
Uma vez que estamos calculando a média de algumas árvores, podemos usar frequentemente árvores
menos profundas no Portrait Uplift do que com uma abordagem que não seja de agregação por bootstrap.
Na prática, configuramos o número mínimo de nós filhos para 4 com maior frequência, mas valores no
intervalo 2 a 8 são comuns.
Candidatos de Análise e Binnings
Os modelos de construção de árvore convencionais envolvem avaliações de divisões entre cada par
de valores de dados para cada campo e usando todos os campos disponíveis. No contexto do Portrait
Uplift, porém, existem grandes benefícios em limitar o número de divisões sob análise.
O desejo de limitar ambas as variáveis sob análise e o número de divisões por variável surge do problema
de divisões invasoras, que são semelhantes aos problemas que surgem com outros tipos de avaliações
repetidas.
Da mesma forma, se testarmos várias divisões para centenas de campos, as chances de encontrar
uma correlação invasora em um deles ficaram bastante elevadas. Essas divisões invasoras podem
deslocar divisões muito mais estáveis e úteis. Embora a remoção elimine divisões instáveis, o dano
ainda é causado porque o algoritmo de construção de árvore não se reconstrói após a remoção de uma
divisão.
Por essa razão, recomendamos normalmente a restrição do número de campos para um número
gerenciável (talvez 10 — 25) e essa é a razão pela qual a seleção variável está incluída no software.
Recomendamos também alguma atenção para com os binnings. No geral, os binnings de igual população
são preferíveis porque apresentam um número inferior de pequenos bins e recomendamos que sejam
selecionados binnings com uma elevação razoavelmente estável ao longo do binning.
Número de Sacos
É mais fácil orientar sobre isso, uma vez que é menos dependente de problemas. Normalmente,
exploramos parâmetros usando 5-10 sacos e construímos modelos finais com 20 sacos.
O número de sacos (árvores por modelo) está sujeito à lei dos rendimentos decrescentes e só
observamos benefícios marginais além dos 10 sacos e muito poucos benefícios marginais além dos
20.
62
Portrait Uplift 7.0A
Capítulo 7: Diretrizes de Parâmetros
Número de Repetições
Normalmente, executamos com a configuração para, no mínimo, 5 quando exploramos parâmetros,
mas, em princípio, qualquer valor entre 1 e cerca de 20 é razoável aqui.
Campo de Estratificação
Conforme realçado na seção Amostragem e Estratificação na página 46, uma boa estratificação ajuda
consideravelmente. O campo de estratificação pode ter uma quantidade elevada de bins, porém,
recomendamos normalmente que exceda com folga a 100.
O Portrait Uplift necessita que o campo de estratificação seja binado com somente um valor por bin e,
se esse não for o caso, a estratificação não será aplicada corretamente. Na prática, a melhor forma de
garantir isso consiste em tornar o campo categórico. Se o campo especificado não for categórico, o
Portrait Uplift irá emitir um aviso e adicionar ele mesmo uma interpretação categórica, mas essa mudança
não é salva no focus de entrada.
Uplift Guia do usuário
63
Capítulo
Referência de Parâmetros
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
•
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
Parâmetros de Descrição de Focus . . . . . . . . . . . . . . . . .67
Parâmetros de Especificação da Árvore . . . . . . . . . . . . .71
Parâmetros Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
Parâmetros da seleção variável . . . . . . . . . . . . . . . . . . . .72
Parâmetros de configuração de execução geral . . . . . . .75
Parâmetros de controle de remoção . . . . . . . . . . . . . . . . .76
Geração de números aleatórios / parâmetros do repetidor
de execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Parâmetros de relatório e saída . . . . . . . . . . . . . . . . . . . .79
Parâmetros de ROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
Parâmetros somente para informação . . . . . . . . . . . . . . .81
Exemplo de Arquivo de Parâmetros Completo . . . . . . . .82
8
Introdução
Introdução
Os parâmetros são fornecidos ao Portrait Uplift por meio de um arquivo XML, cujo nome é especificado
na linha de comando. Um arquivo modelo de formato correto (params.xml) será gerado se o Portrait
Uplift for executado sem especificar quaisquer argumentos.
O XML apresenta a seguinte estrutura de tópicos (consulte a seção Exemplo de Arquivo de Parâmetros
Completo na página 82 para observar um exemplo de um arquivo de parâmetros completo):
<?xml version="1.0" encoding="UTF-8"?>
<params class="Globals">
<fd class="FocusDescription">
<!-- Focus description parameters -->
<focusName>foci/RetentionData.ftr</focusName>
<modelType>binary</modelType>
...
</fd>
<treeSpec class="TreeSpec">
<!-- tree specification parameters -->
<minPopSize>1000</minPopSize>
<nLevels>4</nLevels>
...
</treeSpec>
<!-- general parameters -->
<nBagsValues>[5]</nBagsValues>
<nRuns>1</nRuns>
...
</params>
A ordem na qual os parâmetros e os blocos de parâmetros são colocados no arquivo não tem importância.
Alguns são necessários, enquanto outros são opcionais, e isso é indicado na descrição de parâmetros
individuais abaixo.
Os usuários devem perceber que omitir um parâmetro opcional (ao não o incluir no arquivo) é diferente
de o incluir e deixar o seu valor vazio, uma vez que um parâmetro omitido adota um padrão, enquanto
um parâmetro em branco é configurado para em branco.
É altamente recomendável que, se o arquivo XML estiver sendo editado, seja usado um editor com
suporte a XML. A Portrait recomenda o GNU-Emacs 21.3 com o modo nxml de James Clark para isso.
Se não for usado um editor com suporte a XML, os usuários podem achar útil um navegador da Web,
como o Internet Explorer ou o Firefox, para validar se o XML de entrada está bem formado.
No geral, os parâmetros binários (yes/no ou true/false) assumem os valores numéricos 1
(para yes/true) e 0 (para no/false) no Portrait Uplift. Na maior parte desses casos, qualquer
string não vazia será também considerada como true (1) e strings vazias serão consideradas
como false (0). É altamente recomendável que sejam usados 1 e 0.
66
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
Parâmetros de Descrição de Focus
Os seguintes parâmetros surgem entre as etiquetas <fd> ... </fd>, a menos que seja indicado. Os
parâmetros setacsFocusName e allowOverwrite, que surgem também entre essas etiquetas, são
descritos nas seções setacsFocusName (opcional) na página 72 e allowOverwrite (opcional; padrão
0) na página 73.
focusName (necessário)
O nome do focus a ser usado pelo Portrait Uplift para construir modelos. Esse pode ser um caminho
absoluto (começando com / em UNIX ou uma letra de unidade, como c: no Windows) ou relativo ao
diretório (pasta) no qual o programa está sendo executado.
Observação: Esse parâmetro também é usado pela seleção variável como o nome do focus para
gravar se <saveBestACs> estiver configurado para 1. Os caminhos do Windows podem
ser especificados por meio do separador \ do Windows, mas o Portrait Uplift sempre
irá converter esses caminhos para barras (/) (que o Windows também compreende).
Observação: O Portrait Uplift usa sempre o subfocus padrão no focus.
Os espaços nos nomes de diretórios e de arquivos podem causar problemas; o melhor é
evitá-los.
Tipo de Modelo e Campos de Resultados: Visão geral
O Portrait Uplift suporta três tipos de modelos:
• Resultado binário (binary). Esse é o tipo de modelo usado para problemas, como desgaste/retenção;
probabilidade de compra, etc. Aqui, o modelo uplift ajusta a alteração no resultado derivado do
tratamento, por ex., redução da probabilidade de rotatividade, aumento da probabilidade de resposta,
etc.
• Resultado discreto contínuo ou ordenado (real). Esse é o tipo de modelo usado para problemas nos
quais o objetivo seja estimular o nível ou o tamanho da atividade do cliente, por ex., aumentar a taxa
de compra do cliente. Aqui, o modelo uplift ajusta diretamente a alteração no valor do resultado como
uma consequência do tratamento.
• Duas fases (twostage). Esse tipo de modelo é usado quando o objetivo de uma campanha é aumentar
a frequência da atividade do cliente (por ex., frequência de compra) ou aumentar o nível de atividade
ao conduzir a frequência de compra ou de utilização. Aqui, o modelo uplift é usado para estimar o
aumento da frequência ou da probabilidade do resultado e isso é combinado com uma estimativa
(fornecida) de tamanho do resultado (outcomeSizeActual) caso ocorra.
Dependendo do tipo de modelo que estiver sendo desenvolvido, podem ser fornecidos até três campos
de resultados:
• objectiveField — sempre necessário: o resultado (alvo, variável dependente) para a análise;
Uplift Guia do usuário
67
modelType (necessário)
• outcomeSizeActual — usado somente para modelos de duas fases, para a comparação entre
predições de modelo e resultados reais. Esse é o tamanho real do efeito para aquele indivíduo, por
ex., gasto real após a campanha;
• outcomeSizeEstimate — usado somente para modelos de duas fases. Essa estimativa de tamanho
do resultado é combinada (por multiplicação) com a alteração estimada na probabilidade de resultado
do modelo uplift de produzir a alteração estimada no valor de expectativa do tamanho do resultado.
Isto é:
E(outcomeSize) = U(outcomeProbability) × outcomeSizeEstimate
onde, U corresponde à estimativa de elevação produzida pelo modelo uplift. Se não estiver disponível
nenhuma estimativa (separada) de tamanho do resultado, é possível usar o tamanho real do resultado
quando este for conhecido. Por exemplo, em um aplicativo de retenção, tanto a estimativa do resultado,
como os valores reais, podem ser configurados para a receita anual do cliente. Isso resultaria no
traçado de uma curva Qini que iria representar a elevação na receita anual retida, ao invés de o
número de clientes retidos, no pressuposto de que as receitas futuras serão semelhantes às receitas
históricas. (De uma perspectiva alternativa, está sendo usado um modelo simples que prevê que a
receita do próximo ano para um cliente será igual à desse ano.)
modelType (necessário)
Valores possíveis:
• auto
• binary
• real
• twostage
O parâmetro pode assumir um valor de auto, em vez de um tipo de modelo real. Nesse caso, o tipo
de modelo é determinado em tempo de execução para binary ou real, com base nos dados e objetivo.
Em tempo de execução, o tipo computado substitui o valor auto no arquivo de parâmetros de saída.
objectiveField (necessário)
O campo que indica o resultado a ser modelado. Esse tanto pode ser um campo binário, com valores
0 e 1, ou um campo numérico com qualquer valor. Se for usado em um modelo de duas fases, esse
campo deve ser 1 se outcomeSizeActual for diferente de zero, e 0 caso contrário.
outcomeSizeActual (opcional)
O campo que indica o tamanho do resultado para cada cliente. Como referido acima, somente é usado
para modelos de duas fases.
outcomeSizeEstimate (necessário para modelos de duas fases)
O campo que indica o tamanho estimado do resultado para cada cliente. Como referido acima, somente
é usado para modelos de duas fases. Isso seria normalmente o resultado de um modelo de regressão
(ou semelhante) no subconjunto de clientes com tamanhos de resultado diferentes de zero, isto é,
corresponde à estimativa condicional de tamanho do resultado face a um resultado diferente de zero.
68
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
partitionField (necessário)
Esse é um campo binário com 1 para pessoas que receberam tratamento e 0 para pessoas que não
receberam tratamento.
É altamente recomendável que esse campo não seja invertido, uma vez que isso conduz
normalmente a uma grave confusão. Se os dados apresentarem um campo de partição
que seja invertido, um novo campo de partição pode ser derivado por meio do FDL. Se o
campo existente se chamar Reversed, FDL irá funcionar da mesma forma que qualquer
um dos seguintes
1 - Reversed
if Reversed = 1 then 0 else 1
Reversed = 0
Se o campo possuir valores de string, tais como treated e control, nesse caso, uma das seguintes
expressões FDL seria apropriada:
if StringPartition = "treated" then 1 else 0
StringPartition = "treated"
fixedTrainValidateField (opcional)
Valores possíveis:
• Nome de um campo treinamento/validação existente
• Em branco (nesse caso, o sistema gera uma divisão treinamento/validação automaticamente)
A população é dividida em um conjunto de treinamento (T) e um conjunto de validação (V). O conjunto
de validação não é usado durante a fase de construção de modelo, mas é usado para apresentar
resultados do modelo nos dados de validação (bem como nos dados de treinamento).
Normalmente, o sistema computa uma divisão treinamento/validação por meio de amostragem
estratificada e escolhe diferentes divisões para diferentes construções de modelos. Porém, é possível
que o usuário efetue uma pré-partição dos dados para um conjunto de treinamento e de validação. Se
isso for efetuado, esse parâmetro especifica o nome do campo usado. É necessário apresentar
exatamente dois valores no campo — T para dados de treinamento e V para dados de validação.
Observação: Se o usuário escolher efetuar a partição de dados, é essencial que os dois conjuntos
de dados tenham distribuições semelhantes.
stratificationField (opcional, mas recomendado)
O campo a usar para a estratificação da divisão treinamento/validação.
A seleção variável irá criar o campo de estratificação automaticamente se seu nome estiver configurado
para um campo que ainda não esteja presente no focus.
Se fixedTrainValidateField estiver em branco, o sistema irá gerar sua divisão
treinamento/validação. Ao fazê-lo, ele pode estratificar a partição relativamente a um campo fornecido.
Uplift Guia do usuário
69
championModelField (opcional)
2
Isso significa que a proporção de registros nas partições de treinamento e de validação serão idênticas
ao longo de diferentes valores do campo fornecido. Isso ajuda a garantir que o conjunto de treinamento
seja representativo de todo o conjunto de dados e reduz, dessa forma, a probabilidade de sobreajustar
os dados não representativos.
É recomendável que o campo fornecido resuma pelo menos o campo partitionField, o
objectiveField e os bins do campo outcomeSizeActual, se usados. Preferencialmente, também
deve resumir pelo menos um campo-chave de segmentação — um forte fator de elevação, se conhecido,
ou um campo importante na discriminação entre diferentes tipos de clientes.
No Decision Studio, uma derivação de FDL adequada para alcançar isso seria, por exemplo:
segindex () by Partition, Objective, TopPredictor
É necessário que esse campo seja binado em valores individuais. Normalmente, iríamos esperar no
mínimo quatro e, mais frequentemente, entre 10 e 100 bins para esse campo de estratificação.
championModelField (opcional)
O nome de um ou mais campos que apresentam a pontuação ou pontuações a partir de outros modelos
("sua melhor opção") para comparação de fins. Se existir mais de um, esses devem ser separados por
espaços ou vírgulas.
Será frequente que o usuário pretenda comparar o desempenho de um modelo uplift com o de um outro
modelo. Se esse for o caso, um modelo para sua melhor opção pode ser fornecido aqui e a curva Qini
também será fornecida para esse modelo, para sua melhor opção.
Observação: Normalmente, qualquer modelo para sua melhor opção fornecido não terá sido construído
na mesma partição de treinamento que o modelo uplift, por isso, é necessário ter especial
atenção nas comparações. Em alguns casos, os dados de validação não irão representar
dados "retidos" para o modelo para sua melhor opção e é necessário levar isso em conta
nas comparações.
userWeightingField (opcional)
Um campo a usar para ponderar registros, tanto para a seleção variável como para a construção de
modelo uplift.
Isto não replica fisicamente registros; é uma direção para o Portrait Uplift para tratar cada registro no
conjunto de dados como se aparecesse um número (possivelmente fracional) de vezes igual ao valor
nesse campo.
Nesse caso, o ponderamento de caso é normalmente usado para corrigir os vários tipos de diferenças
que podem surgir no conjunto de dados de modelagem. Vários cenários são descritos na seção Ajuste
de Tratamento e Validação de Modelo na página 32.
Observação: Uma vez que, normalmente, os níveis de significância aumentam com quantidade, a
metodologia de modelagem não é invariável à escala constante do campo de ponderação.
Por exemplo, uma ponderação constante grande faria com que ocorrências de registro
2
70
Em rigor, as proporções serão o mais semelhantes possível dadas as restrições de inteiros e terão
valores de expectativa idênticos.
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
únicas parecessem relativamente mais significativas que com uma ponderação da
unidade.
yQiniAxis (opcional; Uplift Cumulativo padrão (pc pt))
(Esse parâmetro aparece na seção de parâmetros gerais.)
Esse parâmetro define o texto para o eixo vertical do gráfico Qini. No caso de resultados contínuos,
recomendamos que inclua o qualificador "(photp)", referente a "por cabeça da população total", que é
discutido na seção Eixo Vertical Para Resultados Contínuos (photp) na página 55.
Parâmetros de Especificação da Árvore
Estes parâmetros aparecem dentro das etiquetas <treeSpec> ... </treeSpec> a menos que sejam
indicados de forma diferente.
minPopSize (opcional; padrão 2000)
Isso especifica o tamanho mínimo de população de treinamento em qualquer nó na árvore. Divisões
que poderão resultar em populações tratadas ou controladas menores que o especificado são
descartadas.
O Portrait Uplift pode sugerir automaticamente um tamanho mínimo de população baseado em níveis
de elevação gerais e volumes de dados disponíveis, o que é sempre um bom ponto inicial. Consulte a
seção autoMinPopSize (opcional; padrão 1) na página 71.
autoMinPopSize (opcional; padrão 1)
Esse parâmetro aparece na seção de parâmetros gerais.
Quando é configurado para 1 (isto é, verdadeiro), o software computa um valor mínimo apropriado de
tamanho de população no tempo de execução, substituindo qualquer valor fornecido no parâmetro
minPopSize dentro da seção de especificação da árvore e configura o parâmetro minLeafnodes
para 2, reduzindo o risco de o tamanho de população mínimo gerado automaticamente resultar na
impossibilidade de criar uma árvore.
Para um resultado binário, o tamanho é escolhido com base na menor população, dentro da qual o nível
de elevação geral (diferença nas taxas de resposta entre os tratados e controlados) pode ser seguramente
detectado.
Se o nível de elevação geral é baixo, ou o resultado é contínuo, a recomendação de tamanho da
população é simplesmente o maior número razoável que permite que o número necessário de nós filhos
sejam gerados.
searchMinPopSize (opcional; padrão 0)
Esse parâmetro aparece na seção de parâmetros gerais.
Uplift Guia do usuário
71
nLevels (opcional; padrão 4)
Quando é configurado para 1 (isto é, verdadeiro), o software computa árvores para vários conjuntos de
parâmetros, da mesma forma que o faz quando é fornecido um vetor de nBags ou pruneThresholds.
Os valores reais de minPopSize são 100%, 75%, 50% e 25% do minPopSize especificado ou gerado
automaticamente.
nLevels (opcional; padrão 4)
Isso especifica o número máximo de níveis de divisões na árvore.
No Decision Studio, a profundidade da árvore é expressa normalmente em termos do
número de níveis de nós, enquanto aqui estamos especificando o número de níveis das
divisões. Claramente, uma árvore com n níveis de divisões tem n+1 níveis de nós. Assim,
a configuração padrão dos quatro produz "árvores de cinco níveis" na terminologia normal
do Decision Studio.
Parâmetros Gerais
Todos os parâmetros seguintes aparecem entre as etiquetas de nível superior <params> ... </params>,
a menos se indicado.
Parâmetros da seleção variável
A seleção variável no Portrait Uplift usa o mesmo arquivo XML de entrada como construção de modelo.
Ela usa somente um subconjunto dos principais parâmetros (principalmente focusName,
partitionField e objectiveField), em conjunto com alguns parâmetros dedicados extra.
setacsFocusName (opcional)
O nome do focus a usar como entrada para a seleção variável. Se saveBestACs estiver configurado
para 1, é salvo um focus com o número necessário de candidatos de análise configurado, usando o
nome do focus especificado em focusName. Se o focus já existir, será substituído, desde que
allowOverwrite esteja configurado para 1; caso contrário, o focus não poderá ser salvo.
Observação: a seleção variável aplica interpretações de exportação a todos os campos configurados
como candidatos de análise nesse focus quando salva com o nome especificado pelo
parâmetro focusName e irá limpar quaisquer outras interpretações de exportação. Isso
permite visualizar quais campos estavam disponíveis para a seleção variável como
candidatos de análise.
72
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
allowOverwrite (opcional; padrão 0)
Se configurada, a seleção variável pode substituir um focus existente (com o nome especificado por
focusName); caso contrário, não será possível salvar o focus, se isso for solicitado.
nBestACs (opcional; padrão: 5)
Especifica o número de candidatos de análise a selecionar. (As estatísticas são apresentadas sobre
todos os candidatos de análise no focus de entrada.)
saveBestACs (opcional; padrão: 1)
Se esse estiver configurado para 1, assim que os melhores candidatos de análise para a modelagem
uplift tiverem sido identificados, será salva uma nova cópia do focus com esses candidatos configurados.
O novo focus será salvo no mesmo diretório do focus inicial. Seu nome será o mesmo, mas com
'BestnACs' anexado, onde n corresponde ao número de candidatos de análise escolhidos. (Ao executar
o Portrait Uplift a partir do Portrait Miner, esse focus terá o sufixo 'BestACs'.) Se o focus já existir, será
adicionado um número no final do nome do focus.
setacsNEvals (opcional; padrão: 5)
Ao avaliar estimativas de Qini baixas, a seleção variável calcula a média referente a um número de
repetições. Esse parâmetro controla o número de repetições, por padrão 5. A seleção variável irá
funcionar perfeitamente com esse parâmetro configurado para 1, mas, no geral, um valor superior produz
resultados mais precisos, a custo de um tempo de execução proporcionalmente maior.
Em ambientes com ruído elevado, verificamos por vezes a necessidade de aumentar setacsNEvals
para valores no intervalo 25 — 100 (consulte abaixo para explicações).
setacsSigmaWeight (opcional; padrão: auto)
Ao avaliar estimativas de Qini baixas, a seleção variável computa a Qini média menos um múltiplo w
do desvio padrão, ou seja, a estimativa de Qini baixa é:
μ(q0) - wσ(q0).
O parâmetro w é controlado por esse parâmetro, setacsSigmaWeight. Por padrão é auto, o que
configura o valor para 1/√n onde n corresponde ao número de repetições, no qual a média da estimativa
de Qini baixa é calculada (isto é, o parâmetro setacsNEvals). Isso configura a estimativa de Qini baixa
para
μ(q0) - σ(q0)/√n.
que é o limite inferior aproximado de um intervalo de confiança para q0.
Em situações nas quais a variação é muito elevada, esta estimativa de Qini baixa padrão (com
setacsNEvals=5 e um valor efetivo para setacsSigmaWeight de 1/√5 0,447) pode não funcionar
corretamente ou até produzir quaisquer campos com estimativas de Qini baixas positivas. Nessa situação,
a classificação dos campos pode não ser útil. Quando isso ocorre, pode ser útil aumentar o número de
Uplift Guia do usuário
73
setacsRebin (opcional; padrão: 0)
avaliações (setacsNEvals), que irá restringir o intervalo de confiança e, dessa forma, reduzir
efetivamente setacsSigmaWeight, quando esse estiver configurado para auto.
Em ambientes com ruído elevado, verificamos, por vezes, a necessidade de aumentar o setacsNEvals
para valores no intervalo 25 — 100.
Observação: As estimativas de Qini baixas usadas para o rebinning de campos ignoram o valor desse
parâmetro.
setacsRebin (opcional; padrão: 0)
Para uma discussão detalhada sobre esse parâmetro consulte a seção Binning Automatizado na
página 40.
• Se setacsRebin estiver configurado para zero, não é efetuado o rebinning e são escolhidos somente
os candidatos de análise.
• Se setacsRebin estiver configurado para 1 (ou qualquer inteiro diferente de zero), o software otimiza
o binning de todos os candidatos de análise que não sejam datas e grava um arquivo, binnings.xml,
no diretório de resultados.
• Finalmente, se setacsRebin estiver configurado para o nome de um arquivo XML de binnings, o
software irá configurar os binnings nos campos, conforme especificado nesse arquivo.
setacsRebinCriterion (opcional; padrão: T)
Controla qual medida é usada para escolher o binning. Os valores possíveis são:
• L, para as mais altas Estimativas de Qini baixas;
• M, para a mais alta Qini Média;
• S, para o mais baixo Erro Padrão;
• T, para o maior Ponto de Mudança Ajustado de Qini (TPAQ).
O TPAQ somente é definido para campos numéricos; para os categóricos, S é usado se esse parâmetro
estiver configurado para T. (Consulte a seção Otimizar os Binnings na página 40 para as definições
desses valores.)
setacsRebinMean (opcional; padrão: Trim)
Controla a forma como são tratados os pontos usados para avaliar uma Qini baixa para binning otimizado.
Se estiver configurado para Normal, todos os pontos são mantidos. Se estiver configurado para Trim,
o valor mais alto e o mais baixo de Qini são descartados. Se estiver configurado para Winsorize, os
valores mais alto e mais baixo de Qini são substituídos pelo segundo mais alto e pelo segundo mais
baixo.
setacsUseRebinLQE (opcional; padrão: 1)
Se estiver configurado para 1, ao invés de calcular (novas) estimativas de Qini baixa para determinar
quais variáveis selecionar, reutiliza valores calculados por um binning otimizado, onde isso tiver sido
realizado.
74
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
Esse valor é ignorado se o binning otimizado não for usado.
Enquanto o valor padrão de 1 resulta em maior velocidade, em problemas de ruído elevado
ele é menos preciso, assim, pode ser desejado configurar esse valor para zero (0).
Parâmetros de configuração de execução geral
Existem três parâmetros principais que controlam o número de modelos que são construídos. Eles
especificam um conjunto de números de sacos a usar, um conjunto de limites e um número de repetições
a realizar em cada configuração.
Em pseudocódigo, o loop principal diz:
for b in nBagsValues:
for t in pruneThresholdValues:
for i = 1, 2, ..., nRuns:
Build Uplift Model
Então, se o número de sacos a usar for 10 e 20, os limites de remoção a usar forem 1.2, 1.1 e 1.0 e
houver 5 repetições por valor, serão construídos 30 modelos uplift, da seguinte forma:
nBags
pruneThreshold
nRuns
10
1.2
5
10
1.1
5
10
1.0
5
20
1.2
5
20
1.1
5
20
1.0
5
nBagsValues (necessário)
Forma: <nBagsValues>[10,20]<nBagsValues/>
Conjunto de valores para nBags — o número de sacos a usar na construção de um modelo uplift de
agregação por bootstrap.
Orientação: O intervalo normal é de 5 a 20.
Mesmo que seja fornecido somente um valor para os nBags, é necessário estarem contidos
entre colchetes. Assim, para usar exatamente 10 sacos para todas as repetições, use
<nBagsValues>[10]<nBagsValues/>. Se forem fornecidos vários valores, é necessário
separá-los por vírgulas.
Uplift Guia do usuário
75
pruneThresholdValues (necessário)
pruneThresholdValues (necessário)
Forma: <pruneThresholdValues>[1.2%, 1.1%, 1.0%]<pruneThresholdValues/>
Conjunto de valores de remoção de limite. Assumindo que o pruneMethod está configurado para sd,
ele controla o desvio padrão máximo permitido de elevação em qualquer nó (não raiz) na árvore ao
longo de oito partições reamostradas dos dados de treinamento.
Mesmo que seja fornecido somente um valor para os pruneThresholdValues, ele deve
estar contido entre colchetes. Assim, para usar o limite de 1% para todas as repetições,
use
<pruneThresholdValues>[1.0%]<pruneThresholdValues/>
Se forem fornecidos vários valores, é necessário separá-los por vírgulas.
Para modelos binários e de duas fases, isso é expresso normalmente como uma
porcentagem, incluindo um sinal de porcentagem explícito (%). Os valores de entrada
[1.2%, 1.1%, 1.0%] e [0.012, 0.011, 0.01] são equivalentes. Para modelos reais, o valor
é um desvio padrão absoluto em elevação.
Se prune é configurado para 0, esse valor é ignorado, mas é necessário fornecer algum
valor.
nRuns (opcional; padrão: 1)
Número de repetições a realizar para cada valor de nBagsValues e pruneThresholdValues.
Parâmetros de controle de remoção
prune (opcional; padrão: 1)
1 se for necessária a remoção, 0 (ou em branco) em caso negativo. Todos os outros parâmetros de
remoção são ignorados se a opção de remoção estiver desligada.
autoPrune (opcional; padrão: 0)
Quando é configurada para 1 (isto é, verdadeiro) é configurado automaticamente um valor único no
tempo de execução em pruneThresholdValues.
O valor gerado automaticamente é baseado na variação em elevação observada ao longo de um conjunto
de amostras aleatórias de nm com o tamanho N/m em todo o conjunto de dados, onde N corresponde
ao número de registros no conjunto de dados, e m e n são configurados para 10 e 5 respectivamente.
76
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
pruneMethod (opcional; padrão: sd)
Atualmente, o único método de remoção suportado é a remoção baseada no desvio padrão, sd.
minLeafNodes (opcional; padrão: 4)
As árvores com um número de nós filhos inferior ao especificado após a remoção serão rejeitadas e
será iniciada uma nova construção de árvore.
maxTreeAttempts (opcional; padrão: 2)
Este é o número máximo de tentativas para gerar uma árvores com pelo menos minLeafNodes no
limite de remoção especificado. Se as várias tentativas resultarem em árvores com nós insuficientes,
o limite é aumentado (para essa construção de árvore) com a multiplicação por um fator de 1.2. Daí
em diante, sempre que uma construção de árvore falhar (por ter nós filhos insuficientes), o limite é
aumentado novamente através da multiplicação, isto é, será feita somente uma tentativa sempre que
o limite aumentar. Isso será repetido até um máximo de 12 construções de árvore. Se após as 12
construções a árvore continuar a ter nós insuficientes, ela é aceita de qualquer forma.
O software fornece um aviso sempre que rejeita uma árvore.
propAnalysisCandidates (opcional; padrão: 1.0)
Se for configurado para uma fração p < 1.0, uma proporção p aleatória dos candidatos de análise é
selecionada para usar com cada construção de modelo. Assim, árvores diferentes (em somente um
modelo de agregação por bootstrap) irão usar, em geral, diferentes campos de candidatos de análise.
Observação: Não é tomado nenhum cuidado especial para garantir que o número de candidatos de
análise seja superior a zero após essa operação. O Portrait Uplift irá falhar se for usado
um valor de propAnalysisCandidates pequeno e isso levar à não seleção de campos
como candidatos de análise.
Observação: É possível expressar o valor como uma porcentagem, por exemplo, 1.0 e 100% são
equivalentes para esse parâmetro.
Geração de números aleatórios / parâmetros do
repetidor de execução
O Portrait Uplift gerencia cuidadosamente números aleatórios para garantir que seja possível reproduzir
uma execução completa ou um modelo individual de uma execução.
Sempre que o Portrait Uplift é executado, é produzido um arquivo XML contendo os parâmetros para
essa execução (normalmente params.xml), com prngSetState em branco e prngInitialState
configurado para a semente geradora de números aleatórios inicial para a família de repetições.
Uplift Guia do usuário
77
prngSetState (opcional; em branco por padrão)
Além disso, o arquivo XML que contém os resultados das repetições (normalmente out.xml) contém
uma cópia dos parâmetros para esse modelo uplift em particular, incluindo o prngCurrentState.
O valor de prngSetState determina a forma como o gerador de números aleatórios é inicializado e
qual dos dois parâmetros prng é usado.
prngSetState (opcional; em branco por padrão)
Os valores válidos são:
• Em branco. Neste caso, ambos os valores de prngInitialState e prngCurrentState no arquivo
de entrada são ignorados e é gerada uma nova semente aleatoriamente. Isso significa que o mesmo
arquivo de parâmetros pode ser usado repetidamente e irá gerar diferentes repetições. (Note, no
entanto, que o arquivo de saída, params.xml, reflete sempre esses valores atuais usados.)
• initial (isto é, <prngSetState>initial<prngSetState/>). Nesse caso, o valor em
prngInitialState é usado para propagar o gerador de números aleatórios.
• current (isto é, <prngSetState>current<prngSetState/>). Nesse caso, o valor em
prngCurrentState é usado para propagar o gerador de números aleatórios.
De forma a reproduzir uma execução individual, copie o XML para essa execução a partir do arquivo
de saída (normalmente out.xml) para um arquivo de parâmetros (normalmente params.xml), configure
prngSetState para current, configure nBags para o valor de currentNBags (entre colchetes) e
pruneThresholdValues para o valor de currentPruneThreshold (entre colchetes). Apesar de
não serem parâmetros de entrada, esses dois últimos valores são reportados no XML de saída.
prngCurrentState (opcional)
Se prngSetState é configurado para current, esse valor é usado para propagar o gerador de
números aleatórios.
Observação: Ele só deve ser configurado para um valor copiado diretamente dos resultados de um
XML de saída ou arquivo de parâmetros. Normalmente, tem uma forma como (1,
(26494, 3705, 301), None).
prngInitialState (opcional)
Se prngSetState é configurado para initial, esse valor é usado para propagar o gerador de
números aleatórios.
Observação: Ele só deve ser configurado para um valor copiado diretamente dos resultados de um
XML de saída ou arquivo de parâmetros. Normalmente, tem uma forma como (1,
(26494, 3705, 301), None).
tvTrainProp (opcional; padrão: 50%)
Se o parâmetro fixedTrainValidateField nos parâmetros de descrição do arquivo estiver em
branco, será criada uma divisão de treinamento/validação. Esse parâmetro específica a proporção dos
78
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
registros a alocar à partição de treinamento. É obrigatório que seja um número entre 0 e 1.0 ou entre
0% e 100%.
Se a proporção de treinamento é configurada para 100% (ou muito próximo), o Portrait Uplift não irá
produzir uma saída para um conjunto de validação ou para um conjunto de treinamento e validação
combinado, isto é, irá estar em falta tanto em out.xml como em quaisquer gráficos produzidos.
Parâmetros de relatório e saída
A saída padrão da construção de modelo é organizada na estrutura do diretório apresentada na Figura
9.
resultsDirStem (opcional; padrão: results)
O nome base do diretório no qual os arquivos de saída serão colocados. Se addTimeStamp estiver
configurado ou se o diretório especificado já existir, ele apresentará um timestamp adicionado. Pode
ser um caminho relativo ou absoluto.
addTimeStamp (opcional; padrão: 1)
Se for diferente de zero, um timestamp com o formato AAAAMMDD-HHMMSS é anexado ao tronco do
diretório de resultados.
Assim, se o tronco de resultados estiver configurado para o seu padrão (results) e for iniciada uma
execução exatamente às 18h35 do dia 8 de setembro de 2012, o diretório de resultados será
results20120908-183500.
Se o diretório especificado em resultsDirStem já existir, é adicionado um timestamp, após um
sublinhado, mesmo que esse parâmetro esteja configurado para zero.
saveFocusStem (opcional; padrão: (blank))
Se não estiver em branco, após cada construção de modelo, o focus é salvo com o nome do tronco em
um subdiretório do diretório de resultados chamado foci. O tronco tem uma assinatura anexada
especificando o número de sacos, o limite de remoção e o número da execução (a partir de 1).
Se estiver em branco, os foci não são salvos.
Observação: O software sempre salva os metadados para os foci intermediários como arquivos .qsfm,
independentemente do estado desse parâmetro. Isso significa que os foci intermediários
podem sempre ser construídos usando qsimportmetadata. Porém, esse processo
pode ser bastante lento, por isso, se souber que vai necessitar deles, salvar os foci
intermediários é mais rápido.
Uplift Guia do usuário
79
saveModelStem (opcional; padrão: model)
saveModelStem (opcional; padrão: model)
Se não estiver em branco, após cada construção de modelo ser salva por meio de uma representação
XML de FDL com o nome de tronco fornecido em um subdiretório do diretório de resultados chamado
models. O tronco tem uma assinatura anexada especificando o número de sacos, o limite de remoção
e o número da execução (a partir de 1).
Um modelo salvo típico estará em um subdiretório do diretório de resultados chamado models com
um nome semelhante a
models/modelB03T3.00pcR0001.xml
indicando que usou 3 sacos (B03, isto é, foi uma média de 3 árvores), tinha um limite de remoção de
3.00% (T3.00pc) e foi a execução 1 de um lote (R0001).
Se estiver em branco, os modelos não são salvos.
saveTreeStem (opcional; padrão: (blank))
Se não estiver em branco, após cada árvore ser construída, ela é salva com o nome do tronco em um
subdiretório do diretório de resultados chamado trees. O tronco tem uma assinatura anexada
especificando o número de sacos, o limite de remoção, o número da execução (a iniciar em 1) e o
número do modelo (a iniciar com 1 e com uma "tentativa" de sufixo da forma A02, se o modelo for uma
reconstrução após uma grande remoção da árvore).
Se estiver em branco, nenhuma árvore é salva.
xmlResultsStem (opcional; padrão: out)
O nome do tronco do arquivo no qual os resultados da curva Qini são salvos como XML.
tvNewFieldName (opcional; padrão: TrainValidate)
O nome do campo a criar para a divisão treinamento/validação se o parâmetro de descrição do arquivo
fixedTrainValidateField estiver em branco.
overallUpliftField (opcional; padrão: UpliftScore)
O nome do campo que deve conter a predição de elevação final para cada cliente.
Parâmetros de ROI
Os seguintes parâmetros são usados ao gerar relatórios Excel e ao avaliar os parâmetros de modelo
recomendados.
80
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
roiCurrencySymbol (opcional; padrão: $)
O símbolo de moeda a usar.
Os símbolos de moeda para o Euro (€) e a Libra esterlina (£) devem ser configurados usando as
abreviações de três letras EUR E GBP, respectivamente
roiCostOfTreatment (opcional; padrão: 0.00)
O custo por cliente do tratamento de campanha.
roiValueOfBenefit (opcional; padrão: 1.00)
O benefício acumulado por cada cliente que responde.
roiCostOfFulfillment (opcional; padrão: 0.00)
O custo incorrido por resposta tratada.
Parâmetros somente para informação
currentNBags (configurado durante a construção de modelo)
Ignorado na entrada mas, na saída (no arquivo especificado por xmlResultsStem), contém o valor
de nBags para o modelo uplift atual.
Isso pode ser usado em conjunto com prngSetState e currentPruneThreshold para reconstruir
um modelo específico.
currentPruneThreshold (configurado durante a construção de modelo)
Ignorado na entrada mas, na saída (no arquivo especificado por xmlResultsStem), contém o valor
de pruneThreshold para o modelo uplift atual.
Isso pode ser usado em conjunto com prngSetState e currentNBags para reconstruir um modelo
específico.
applyFocusName
Quando os modelos uplift são aplicados a novos dados (seção Aplicar modelos Uplift de Agregação
por Bootstrap a novos dados na página 22), esse parâmetro é configurado para o nome do focus ao
qual será aplicado um conjunto de modelos gerado anteriormente.
Uplift Guia do usuário
81
Exemplo de Arquivo de Parâmetros Completo
Exemplo de Arquivo de Parâmetros Completo
<?xml version="1.0" encoding="UTF-8"?>
<params class="Globals">
<fd class="FocusDescription">
<setacsFocusName>foci/RetentionData.ftr</focusName>
<focusName>foci/RetentionDataACs.ftr</focusName>
<modelType>binary</modelType>
<objectiveField>AccountClosed</objectiveField>
<outcomeSizeActual></outcomeSizeActual>
<outcomeSizeEstimate></outcomeSizeEstimate>
<partitionField>RetentionCampaign</partitionField>
<fixedTrainValidateField></fixedTrainValidateField>
<stratificationField>ObjectiveByTreatmentBySpend</stratificationField>
<championModelField>RetentionScore</championModelField>
<allowOverwrite>0</allowOverwrite>
</fd>
<treeSpec class="TreeSpec">
<minPopSize>1000</minPopSize>
<nLevels>4</nLevels>
</treeSpec>
<!-- overall run set parameters -->
<nBagsValues>[5]</nBagsValues>
<pruneThresholdValues>[0.7%]</pruneThresholdValues>
<nRuns>1</nRuns>
<!-- pruning control parameters -->
<autoPrune>0</autoPrune>
<prune>1</prune>
<pruneMethod>sd</pruneMethod>
<minLeafNodes>4</minLeafNodes>
<maxTreeAttempts>2</maxTreeAttempts>
<!-- minimum population size parameters -->
<autoMinPopSize>1</autoMinPopSize>
<searchMinPopSize>0</searchMinPopSize>
<!-- problem interpretation parameters -->
<yQiniAxis>Increase in Churn (pc pt)</yQiniAxis>
<!-- setacs parameters (Automatic selection of analysis candidates -->
<nBestACs>10</nBestACs>
<!-- Random number generation / run repeater parameters -->
82
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
<prngCurrentState>(1, (26494, 3705, 301), None)</prngCurrentState>
<prngInitialState>(1, (26494, 3705, 301), None)</prngInitialState>
<prngSetState></prngSetState>
<tvTrainProp>50%</tvTrainProp>
<!-- Reporting and output parameters -->
<resultsDirStem>results</resultsDirStem>
<addTimeStamp>1</addTimeStamp>
<saveFocusStem>snapshot</saveFocusStem>
<saveTreeStem>tree</saveTreeStem>
<xmlResultsStem>out</xmlResultsStem>
<tvNewFieldName>TrainValidate</tvNewFieldName>
<overallUpliftField>UpliftScore</overallUpliftField>
<!--
RoI parameters -->
<roiCurrencySymbol>$</roiCurrencySymbol>
<roiCostOfTreatment>0.00</roiCostOfTreatment>
<roiValueOfBenefit>1.00</roiValueOfBenefit>
<roiCostOfFulfillment>0.00</roiCostOfFulfillment>
<!-- information-only parameters: these are not set by the user
or needed on input, but are set and reported by UpliftPlus -->
<propAnalysisCandidates>1.0</propAnalysisCandidates>
<applyFocusName>1.0</applyFocusName>
<currentNBags>5</currentNBags>
<currentPruneThreshold>0.7%</currentPruneThreshold>
</params>
Uplift Guia do usuário
83
Exemplo de Arquivo de Parâmetros Completo
Figura 1: A opção do botão direito do mouse para selecionar variáveis.
Figura 2: A caixa de diálogo de seleção variável.
84
Portrait Uplift 7.0A
Capítulo 8: Referência de Parâmetros
Figura 3: Um gráfico que mostra valores Qini (Q) como uma função de número de bins.
Figura 4: Um Perfil de Uplift.
Figura 5: Um Relatório de Validação de Partição. Nesse exemplo, exceto alguns bins (de cor
cinza) que contêm poucos registros de interesse, nenhum dos bins tem uma proporção que se
desvie de forma significativa da proporção global de 89.87%.
Uplift Guia do usuário
85
Exemplo de Arquivo de Parâmetros Completo
Figura 6: Um Campo de Estabilização de Perfil.
Figura 7: A Estrutura de dados de Validação e de Treinamento e a reamostragem dos dados de
treinamento para produzir treinamento reamostrado e conjuntos de teste reamostrados.
Figura 8: Um Perfil de Pontuação.
Figura 9: Estrutura de diretório de saída padrão.
86
Portrait Uplift 7.0A

Documentos relacionados