Valores ausentes (Analysis Services - Mineração de dados)

Um valor ausente pode significar várias coisas diferentes em seus dados. Talvez o campo não fosse aplicável, o evento não aconteceu ou os dados não estavam disponíveis. Pode ser que a pessoa que inseriu os dados não sabia o valor certo ou não se preocupou com o preenchimento do campo. Sendo assim, o Analysis Services fornece dois mecanismos distintos para gerenciar e calcular esses valores ausentes, também conhecidos como valores nulos.

Se a tarefa que você está modelando especifica que uma coluna jamais deve ficar sem valores, use o sinalizador de modelagem NOT_NULL ao definir a estrutura de mineração. Ele garantirá que haverá uma falha no processamento se faltar um valor apropriado. Se ocorrer um erro ao processar um modelo, você poderá registrar o erro em log e tomar as medidas necessárias para corrigir os dados fornecidos ao modelo. Existem diversas ferramentas que você pode usar para deduzir e preencher os valores apropriados, como a transformação Pesquisa ou a tarefa Criador de Perfil do SQL Server Integration Services ou a ferramenta Preencher do Exemplo fornecida com os Suplementos de Mineração de Dados do Excel.

No entanto, há também muitos cenários de mineração de dados nos quais os valores ausentes fornecem informações importantes. Geralmente, o Analysis Services trata valores ausentes como informativos e ajusta as probabilidades para incorporá-los a seus cálculos. Dessa forma, é possível assegurar o equilíbrio dos modelos e que eles não atribuem um peso excessivo aos casos existentes. Esta seção explica como os valores são definidos e considerados Ausentes em modelos que permitem valores nulos. Este tópico também descreve como algoritmos de mineração de dados processam e usam esses valores Missing ao criar um modelo.

ObservaçãoObservação

Cada algoritmo pode controlar os valores ausentes de maneiras diferentes, inclusive algoritmos personalizados que você pode ter obtido de um plug-in de terceiros.

Usando valores ausentes em modelos

Para o algoritmo de mineração de dados, os valores ausentes são informativos. No caso de tabelas, Missing é um estado válido como qualquer outro. Além disso, um modelo de mineração de dados pode usar outros valores para prever se um valor está ausente. Em outras palavras, o fato de um valor estar ausente não é tratado como erro.

Quando você criar um modelo de mineração de dados, um estado Missing será adicionado automaticamente ao modelo para todas as colunas discretas. Por exemplo, se a coluna de entrada de Gênero tiver dois valores possíveis, Masculino e Feminino, um terceiro valor será adicionado automaticamente para representar o valor Missing, e o histograma que mostra a distribuição de todos os valores da coluna sempre incluirá a contagem de casos com valores Missing. Se não houver valores ausentes na coluna Gênero, o histograma mostrará que o estado Ausente foi encontrado em 0 casos.

A inclusão do estado Missing por padrão faz sentido se você considerar que os dados podem não ter exemplos de todos os valores possíveis e que não convém excluir uma possibilidade simplesmente porque não há um exemplo nos dados. Se, por exemplo, os dados de vendas de uma loja mostrarem que todos os clientes que compraram um determinado produto foram mulheres, não convém criar um modelo que prevê que somente mulheres comprariam esse produto. Em vez disso, o Analysis Services adiciona um espaço reservado para um valor extra desconhecido, chamado Missing, como uma forma de acomodar outros estados possíveis.

Por exemplo, a tabela a seguir mostra a distribuição de valores do nó (All) no modelo de árvore de decisão criado para o tutorial Bike Buyer. No cenário do exemplo, a coluna [Bike Buyer] é um atributo previsível, em que 1 indica "Sim" e 0 indica "Não".

Valor

Casos

0

9296

1

9098

Missing

0

Essa distribuição mostra que cerca de metade dos clientes comprou uma bicicleta e metade não. Esse conjunto de dados em particular é bem simples; portanto, cada caso tem um valor na coluna [Bike Buyer] e a contagem de valores Missing é 0. Contudo, se algum caso tivesse um nulo no campo [Bike Buyer], o Analysis Services contaria essa linha como um caso com valor Missing.

Se a entrada for uma coluna contínua, o modelo tabulará dois estados possíveis para o atributo: Existing e Missing. Em outras palavras, ou a coluna contém um valor de algum tipo de dados numérico ou não contém valor algum. Nos casos que têm um valor, o modelo calculará o desvio médio padrão e outras estatísticas significativas. Para casos que não têm nenhum valor, o modelo fornecerá uma contagem dos valores Missing e ajustará as previsões de acordo. O método usado para ajustar a previsão varia dependendo do algoritmo e é descrito na próxima seção.

ObservaçãoObservação

Para atributos em uma tabela aninhada, os valores ausentes não são informativos. Por exemplo, se um cliente não comprou um produto, a tabela Products aninhada não teria a linha correspondente a esse produto e o modelo de mineração não criaria um atributo para o produto ausente. No entanto, se você estiver interessado nos clientes que não compraram certos produtos, poderá criar um modelo que seja filtrado pela não existência dos produtos na tabela aninhada usando uma instrução NOT EXISTS no filtro do modelo. Para obter mais informações, consulte Como aplicar um filtro a um modelo de mineração.

Ajustando a probabilidade para o valor ausente

Além de contar valores, o Analysis Services calcula a probabilidade de qualquer valor em todo o conjunto de dados. O mesmo é válido para valores Missing. Por exemplo, a tabela a seguir mostra as probabilidades para os casos do exemplo anterior:

Valor

Casos

Probabilidade

0

9296

50.55%

1

9098

49.42%

Ausente

0

0.03%

Pode parecer estanho que a probabilidade do valor Missing tenha sido calculada como 0,03% quando o número de casos é 0. Na realidade, esse é o comportamento padrão e representa um ajuste que permite ao modelo lidar bem com valores desconhecidos.

Em geral, o cálculo da probabilidade é feito ao dividir o número de casos favoráveis por todos os casos possíveis. Nesse exemplo, o algoritmo computa a soma dos casos que satisfazem um determinado critério ([Bike Buyer] = 1, ou [Bike Buyer] = 0) e divide esse número pela contagem total de linhas. Entretanto, para considerar os casos Missing, 1 é somado ao número de todos os casos possíveis. Como resultado, a probabilidade do caso desconhecido não é mais zero, mas um número bem pequeno, indicando simplesmente que o estado é improvável, mas não impossível.

A adição do valor Missing baixo não altera o resultado do indicador. Entretanto, ela permite uma melhor modelagem em cenários onde os dados históricos não incluem todos os resultados possíveis.

ObservaçãoObservação

A mineração de dados difere na maneira como lida com valores ausentes. Por exemplo, alguns provedores assumem que os dados ausentes em uma coluna aninhada são uma representação esparsa, mas que os dados ausentes em uma coluna não-aninhada estão ausentes ao acaso.

Se você tiver certeza de que todos os resultados foram especificados nos dados e quiser evitar o ajuste das probabilidades, defina o sinalizador de modelagem NOT_NULL na coluna da estrutura de mineração.

Manipulação especial de valores ausentes em modelos de árvore de decisão

O algoritmo Árvores de Decisão da Microsoft calcula probabilidades para valores ausentes de formas diferentes em outros algoritmos. Em vez de apenas adicionar 1 ao número total de casos, o algoritmo de árvore de decisão ajusta os estados Ausentes usando uma fórmula um pouco diferente.

Em um modelo de árvore de decisão, a probabilidade do estado ausente é calculado como segue:

StateProbability = (NodePriorProbability) * (StateSupport + 1) / (NodeSupport + TotalStates)

Além disso, no SQL Server 2008 Analysis Services, o algoritmo Árvores de Decisão faz um ajuste extra que ajuda o algoritmo a compensar a presença de filtros no modelo, o que pode resultar na exclusão de vários estados durante o treinamento.

No SQL Server 2008, se houver um estado durante o treinamento, mas um determinado nó suportar apenas 0, o ajuste padrão será feito. Porém, se um estado nunca for encontrado durante o treinamento, o algoritmo definirá a probabilidade exatamente como 0. Esse ajuste é válido não só para o estado Ausente, mas também para estados que existem nos dados de treinamento, mas com suporte para 0 como resultado da filtragem do modelo.

Esse ajuste adicional resulta na seguinte fórmula:

StateProbability = 0.0 se esse estado tiver 0 suporte no treinamento definido

ELSE StateProbability = (NodePriorProbability)* (StateSupport + 1) / (NodeSupport + TotalStatesWithNonZeroSupport)

O efeito desse ajuste é manter a estabilidade da árvore.