Participe da Maratona Behind the Code! Prêmios e desafios incríveis te esperam, não perca! Inscreva-se aqui

Técnicas de mineração de dados

Mineração de dados como um processo

Basicamente, a mineração de dados é o processamento de dados e a identificação de padrões e tendências nessas informações para que você possa tomar decisões ou fazer julgamentos. Os princípios de mineração de dados existem há muitos anos, mas, com o surgimento do big data, eles são cada vez mais predominantes.

O Big Data causou uma grande explosão no uso de técnicas de mineração de dados mais abrangentes, em partes porque o tamanho das informações é muito maior e porque as informações tendem a ser mais variadas e amplas por natureza e em termos de conteúdo. Com grandes conjuntos de dados, não é mais suficiente obter estatísticas diretas e relativamente simples do sistema. Com 30 ou 40 milhões de registros de informações detalhadas do cliente, saber que dois milhões deles vivem em uma determinada localização não é suficiente. Você quer saber se esses dois milhões fazem parte de um grupo de idade específica e também seu lucro médio para poder direcionar melhor as necessidades do cliente.

Essas necessidades orientadas por negócios transformaram uma simples recuperação de dados e as estatísticas em uma mineração de dados mais complexa. O problema na área de negócios leva a um exame dos dados, que ajuda a construir um modelo para descrever as informações que, por fim, levam à criação do relatório resultante. Destaques do processo destaca o processo.

Destaques do processo

Fluxograma exibindo o fluxo do processo

O processo de análise de dados, descoberta e construção de modelo geralmente é iterativo, conforme você direciona e identifica as diferentes informações que pode extrair. Também é preciso entender como relacionar, mapear, associar e agrupar essas informações com outros dados para produzir o resultado. A identificação de dados de origem e dos formatos e, depois, o mapeamento dessas informações para o resultado obtido podem mudar após você descobrir diferentes elementos e aspectos dos dados.

Ferramentas de mineração de dados

A mineração de dados não trata apenas das ferramentas ou do software de banco de dados sendo utilizados. É possível realizar a mineração de dados com sistemas de banco de dados relativamente modestos e ferramentas simples, inclusive criação e gravação, ou utilizar pacotes de software de pronto para uso. A mineração de dados complexos se beneficia de experiências e algoritmos antigos definidos com software e pacotes existentes, com certas ferramentas ganhando uma maior afinidade ou reputação com técnicas diferentes.

Por exemplo, o IBM SPSS®, que tem suas raízes nas análises estatísticas e de pesquisas de opinião, pode desenvolver modelos preditivos efetivos examinando tendências passadas e construindo previsões precisas. IBM InfoSphere® Warehousefornece informações de fontes de dados, pré-processamento, mineração e análise em um único pacote, que permite obter as informações do banco de dados de origem direto para a saída de relatório final.

É recente que os conjuntos de dados muito grandes e o cluster e o processamento de dados em grande escala podem permitir a mineração de dados, e intercalar e relatar grupos e correlações de dados mais complicados. Agora um conjunto totalmente novo de ferramentas e sistemas disponíveis, que inclui sistemas de armazenamento e processamento de dados combinados.

É possível explorar dados com vários conjuntos de dados diferentes, inclusivebancos de dados SQL tradicionais, dados de texto bruto, armazenamentos de chave/valor e bancos de dados de documentos. Bancos de dados em cluster, como Hadoop, Cassandra, CouchDB e Couchbase Server, armazenam e fornecem acesso aos dados de uma tal forma que eles não correspondem à estrutura de tabela tradicional.

Em particular, o formato de armazenamento mais flexível do banco de dados de documentos causa um foco e uma complexidade diferentes em termos de processamento de informações. Os bancos de dados SQL impõem estruturas estritas e rigidez ao esquema, o que torna sua consulta e a análise de dados mais diretas a partir da perspectiva de que o formato e a estrutura das informações são conhecidos.

Bancos de dados de documentos que têm um padrão, como estrutura de execução JSON, ou arquivos que têm alguma estrutura legível por máquina, também são mais fáceis de processar, embora possam agregar complexidades devido à estrutura diferente e variável. Por exemplo, com o processamento de dados totalmente brutos do Hadoop, talvez seja mais complicado identificar e extrair o conteúdo antes de você começar a processá-lo e correlacioná-lo.

Técnicas principais

Várias técnicas centrais que são utilizadas em mineração de dados descrevem o tipo de mineração e a operação de recuperação de dados. Infelizmente, diferentes empresas e soluções nem sempre compartilham termos, o que pode causar confusão e uma aparente complexidade.

Vamos dar uma olhada em algumas das principais técnicas e exemplos de como utilizar diferentes ferramentas para construir a mineração de dados.

Associação

Provavelmente, a associação (ou relação) é a técnica de mineração de dados mais conhecida, mais familiar e mais direta. Aqui, você faz uma simples correlação entre dois ou mais itens, geralmente do mesmo tipo, para identificar padrões. Por exemplo, ao rastrear os hábitos de compras de uma pessoa, você pode identificar que um cliente sempre compra creme quando compra morangos e, então, na próxima vez que ele comprar morangos, você pode sugerir que ele compre creme.

A construção de ferramentas de mineração de dados baseadas em associação ou relação pode ser realizada simplesmente com ferramentas diferentes. Por exemplo, no InfoSphere Warehouse, um assistente fornece configurações de um fluxo de informações utilizado na associação examinando a origem de entrada do banco de dados, a base de decisão e as informações de saída. Fluxo de informações que é utilizado na associação mostra um exemplo do banco de dados de amostras.

Fluxo de informações que é utilizado na associação

Screenshot apresentando o fluxo de informações

Classificação

É possível utilizar classificação para desenvolver uma ideia do tipo de cliente, item ou objeto, descrevendo vários atributos para identificar uma determinada classe. Por exemplo, é possível classificar carros facilmente em diferentes tipos (sedan, 4×4, conversível) identificando atributos diferentes (número de lugares, formato do carro, rodas motrizes). Dado um novo carro, você pode aplicá-lo a uma classe específica comparando os atributos com nossa definição conhecida. É possível aplicar os mesmos princípios para clientes, por exemplo, classificando-os por idade e grupo social.

Além disso, é possível utilizar classificação como um alimentador para, ou como resultado de, outras técnicas. Por exemplo, você pode utilizar as árvores de decisão para determinar uma classificação. O armazenamento em cluster permite utilizar atributos comuns em diferentes classificações para identificar clusters.

Armazenamento em cluster

Ao examinar um ou mais atributos ou classes, você pode agrupar partes individuais de dados para formar uma opinião sobre estrutura. Em um nível simples, o armazenamento em cluster está utilizando um ou mais atributos como base para identificar um cluster de resultados correlacionados. O armazenamento em cluster é útil para identificar informações divergentes, pois as correlaciona com outros exemplos para que seja possível ver onde as semelhanças e as variações concordam.

O armazenamento em cluster pode trabalhar de ambas as formas. Você pode supor que há um cluster em um certo ponto e utilizar nossos critérios de identificação para ver se você está correto. O gráfico na Armazenamento em cluster mostra um bom exemplo. Neste exemplo, uma amostra de dados da venda compara a idade do cliente com o tamanho da venda. Não é insensato imaginar que as pessoas na faixa dos vinte anos (antes de se casarem e terem filhos), cinquenta e sessenta (quando os filhos já saíram de casa) têm mais dinheiro disponível.

Grafico representando armazenamento em cluster

No exemplo, podemos identificar dois clusters, um em torno de US$ 2.000/grupo de idade de 20 a 30 anos e outro de US$ 7.000 a US$ 8.000/grupo de idade de 50 a 65 anos. Nesse caso, nós consideramos uma hipótese e a comprovamos com um simples gráfico que podemos criar utilizando qualquer software de gráfico adequado para rápida visualização manual. Determinações mais complexas exigem um pacote analítico completo, principalmente se você quiser basear decisões automaticamente nas informações do vizinho mais próximo.

Plotar o armazenamento em cluster dessa forma é um exemplo simplificado da chamada identidade do vizinho mais próximo. É possível identificar clientes individuais por sua proximidade literal com o outro no gráfico. É muito provável que os clientes no mesmo cluster também compartilhem outros atributos, e é possível usar essa expectativa para ajudar a direcionar, classificar e analisar de alguma forma outras pessoas do seu conjunto de dados.

Também é possível aplicar o armazenamento em cluster a partir da perspectiva oposta; dados certos atributos de entrada, é possível identificar diferentes artefatos. Por exemplo, um recente estudo sobre números de PIN com 4 dígitos encontrou clusters entre os dígitos nos intervalos de 1 a 12 e de 1 a 31 para o primeiro e o segundo pares. Ao plotar esses pares, você pode identificar e determinar os clusters para relacionar a datas (nascimento, aniversário).

Previsão

A previsão é um tópico amplo que vai da previsão de falhas de componentes ou maquinários à identificação de fraudes e previsão de lucros de uma empresa. Usada em combinação com outras técnicas de mineração de dados, a previsão envolve análise de tendências, classificação, reconhecimento de padrões e relação. Ao analisar instâncias ou eventos antigos, você pode fazer uma previsão sobre um evento.

Utilizando a autorização do cartão de crédito, por exemplo, você pode combinar a análise da árvore de decisão de transações antigas individuais com a classificação e as correspondências de padrões históricos para identificar se uma transação é fraudulenta. Ao fazer uma correspondência entre a compra de voos para os EUA e as transações nos EUA, é provável que a transação seja válida.

Padrões sequenciais

Geralmente utilizados sobre dados de longo prazo, os padrões sequenciais são um método útil para identificar tendências ou ocorrências regulares de eventos semelhantes. Por exemplo, com os dados do cliente, é possível identificar que os clientes compram uma determinada coleção de produtos em momentos diferentes do ano. Em um aplicativo de cesta de compras, é possível utilizar essas informações para sugerir automaticamente que certos itens sejam incluídos em uma cesta com base no histórico de frequência e de compras.

Árvores de decisão

Relacionada com a maioria das outras técnicas (principalmente classificação e previsão), a árvore de decisão pode ser utilizada como parte dos critérios de seleção ou para suportar o uso e a seleção de dados específicos na estrutura geral. Na árvore de decisão, você começa com uma questão simples com duas respostas (ou até mais). Cada resposta leva a uma questão adicional para ajudar a classificar ou identificar os dados para que eles possam ser categorizados ou para que uma previsão possa ser feita com base em cada resposta.

Árvore de decisão mostra um exemplo no qual é possível classificar uma futura condição de erro.

Fluxograma representando a árvore de decisão

Geralmente, as árvores de decisão são utilizadas com sistemas de classificação para informações de tipo de atributo, e com sistemas preditivos, em que diferentes predições podem ser baseadas em antigas experiências históricas, o que ajuda a direcionar a estrutura da árvore de decisão e a saída.

Combinações

Na prática, é muito raro utilizar cada um desses itens isoladamente. A classificação e o armazenamento em cluster são técnicas semelhantes. Ao utilizar o armazenamento em cluster para identificar os vizinhos mais próximos, você pode refinar mais suas classificações. Normalmente, utilizamos árvores de decisão para ajudar a construir e a identificar classificações que podemos rastrear por um período maior para reconhecer sequências e padrões.

Processamento (de memória) a longo prazo

Dentro de todos os métodos centrais, geralmente existe uma razão para registrar e aprender com as informações. Em algumas técnicas, isso é óbvio. Por exemplo, com padrões sequenciais e aprendizado preditivo, você revisita dados de várias fontes e instâncias de informações para criar um padrão.

Em outros, o processo pode ser mais explícito. Raramente as árvores de decisão são baseadas em tempo e nunca são esquecidas. Conforme novas informações, eventos e pontos de dados são identificados, talvez seja necessário criar mais ramificações, ou até mesmo árvores completamente novas, para trabalhar com informações adicionais.

É possível automatizar partes desse processo. Por exemplo, a construção de um modelo preditivo para identificar fraude de cartão de crédito trata da construção de probabilidades que você pode utilizar para a transação atual e, então, atualizar esse modelo com a transação nova (aprovada). Essas informações são então registradas para que a decisão possa ser tomada rapidamente da próxima vez.

Implementações e preparação de dados

A mineração de dados em si conta com a construção de um modelo de dados adequado e uma estrutura que pode ser utilizada para processar, identificar e gerar as informações que você precisa. Independentemente da forma da fonte de dados e da estrutura, organize e estruture as informações em um formato que permita que a mineração de dados aconteça em um modelo da forma mais eficiente possível.

Considere a combinação dos requisitos de negócios para a mineração de dados, a identificação das variáveis existentes (cliente, valores, país) e o requisito para criar novas variáveis que podem ser utilizadas para analisar os dados na etapa de preparação.

Você pode compor as variáveis analíticas dos dados a partir de várias fontes diferentes para uma única estrutura identificável (por exemplo, você pode criar uma classe de um determinado nível e idade de cliente ou um determinado tipo de erro).

Dependendo da fonte de dados, a forma como você cria e traduz essas informações é uma etapa importante, independentemente da técnica utilizada para finalmente analisar os dados. Essa etapa também leva a um processo mais complexo de identificação, agregação, simplificação ou expansão de informações para adequar seus dados de entrada (consulte Preparação de dados).

Preparação de dados

Fluxograma representando a  preparação de dados

Seus dados de origem, sua localização e seu banco de dados afetam a forma como você processa e agrega as informações.

Construindo um SQL

A construção de um banco de dados SQL geralmente é a mais fácil de todas as abordagens. O SQL (e a estrutura de tabela subjacente que ele contém) é muito bem compreendido, mas não é possível ignorar completamente a estrutura e o formato das informações. Por exemplo, quando você examina o comportamento do usuário em dados de vendas, existem dois formatos primários no modelo de dados SQL (e na mineração de dados em geral) que podem ser utilizados: transacional e demográfico comportamental.

Quando você utiliza o InfoSphere Warehouse, a criação de um modelo demográfico comportamental para propósitos de mineração de dados do cliente para entender padrões de compra e aquisição envolve pegar seus dados SQL de origem baseados nas informações da transação e os parâmetros conhecidos dos clientes e reconstruir essas informações em uma estrutura de tabela predefinida. O InfoSphere Warehouse pode utilizar essas informações para armazenamento em cluster e classificação de mineração de dados para obter as informações necessárias. Os dados demográficos do cliente e os dados da transação de vendas podem ser combinados e depois reconstituídos em um formato que permita uma análise de dados específica, conforme mostrado na Formato da análise de dados específica.

Formato da análise de dados específica

Fluxograma do formato de análise de dados

Por exemplo, com os dados de vendas, talvez você queira identificar as tendências de vendas de certos itens. É possível converter os dados de vendas brutos dos itens individuais em informações transacionais que mapeiem o ID do cliente, os dados da transação e o ID do produto. Ao utilizar essas informações, fica mais fácil identificar sequências e relacionamentos para produtos individuais por clientes individuais com o tempo. Isso permite que o InfoSphere Warehouse calcule informações sequenciais, como, por exemplo, quando provavelmente um cliente comprará o mesmo produto.

É possível desenvolver novos pontos de análise de dados a partir dos dados de origem. Por exemplo, talvez você queira expandir (ou refinar) as informações do seu produto ordenando ou classificando produtos individuais em grupos maiores e, então, analisando os dados com base nesses grupos em vez de individualmente.

Por exemplo, Uma tabela de produtos expandida mostra como expandir as informações de novas maneiras.

Uma tabela de produtos expandida

product_id product_name product_group product_type
101 strawberries, loose strawberries fruit
102 strawberries, box strawberries fruit
110 bananas, loose bananas fruit

Bancos de dados de documentos e MapReduce

O processamento MapReduce de vários documentos e bancos de dados NoSQL modernos, como Hadoop, é projetado para trabalhar com conjuntos de dados muito grandes e com informações que nem sempre seguem um formato tabular. Quando você trabalha com um software de mineração de dados, essa noção pode ser um benefício e um problema.

O principal problema com dados baseados em documento é que o formato não estruturado pode exigir mais processamento do que o esperado para obter as informações necessárias. Muitos registros diferentes podem manter dados semelhantes. A coleta e a harmonização dessas informações para que elas sejam processadas com mais facilidade contam com os estágios de preparação e MapReduce.

Em um sistema baseado em MapReduce, é a função da etapa de mapa pegar os dados de origem e normalizar essas informações em um formato de saída padrão. Essa etapa pode ser um processo relativamente simples (identificar campos-chave ou pontos de dados) ou mais complexo (analisar e processar informações para produzir os dados de amostra). O processo de mapeamento produz o formato padronizado que pode ser utilizado como base.

A redução trata do resumo ou da quantificação de informações e, depois, da emissão dessas informações em uma estrutura padronizada baseada em totais, somas, estatísticas ou outras análises selecionadas para saída.

A consulta desses dados geralmente é mais complexa, mesmo quando se utiliza ferramentas concebidas para isso. Em um exercício de mineração de dados, a abordagem ideal é utilizar a fase MapReduce da mineração de dados como parte do seu exercício de preparação de dados.

Por exemplo, se você estiver desenvolvendo um exercício de mineração de dados para associação ou armazenamento em cluster, o melhor primeiro estágio é a construção de um modelo estatístico adequado que possa ser utilizado para identificar e extrair as informações necessárias. Use a fase MapReduce para extrair e calcular essas informações estatísticas e, então, inseri-las no restante do processo de mineração de dados, levando a uma estrutura como a mostrada na Estrutura MapReduce.

Estrutura MapReduce

Fluxograma de estrutura MapReduce

No exemplo anterior, nós pegamos o processamento (nesse caso, MapReduce) dos dados de origem em um banco de dados de documento e o convertemos em um formato tabular em um banco de dados SQL para propósitos de mineração de dados.

O trabalho com essas informações complexas não formatadas pode exigir preparação e processamento, que são mais complexos. Existem certos tipos e estruturas de dados complexos que não podem ser processados e preparados em uma etapa para a saída que você precisa. Aqui, é possível encadear a saída do MapReduce para mapear e produzir a estrutura de dados necessária sequencialmente, como na Encadeando a saída do MapReduce sequencialmente ou individualmente para produzir várias tabelas de saída de dados.

Encadeando a saída do MapReduce sequencialmente

Fluxograma exibindo a saida do MapReduce sequencialmente

Por exemplo, pegar as informações de criação de logs brutos de um banco de dados de documentos e executar o MapReduce para produzir uma visualização resumida das informações por data pode ser uma tarefa realizada em um único passo. Gerar novamente as informações e combinar essa saída com uma matriz de decisão (codificada na segunda fase MapReduce) e, depois, simplificá-la para uma estrutura sequencial é um bom exemplo de processo de encadeamento. Precisamos de um conjunto inteiro de dados na fase MapReduce para suportar os dados da etapa individual.

Independentemente dos dados de origem, muitas ferramentas podem utilizar arquivo simples, CSV ou outras fontes de dados. O InfoSphere Warehouse, por exemplo, pode analisar arquivos simples além de um link direito para um data warehouse DB2.

Conclusão

A mineração de dados é mais do que a execução de algumas consultas complexas nos dados armazenados em seu banco de dados. Você deve trabalhar com seus dados, reformatá-los ou reestruturá-los, independentemente de estar utilizando SQL, bancos de dados baseados em documentos, como Hadoop, ou arquivos simples. A identificação do formato das informações necessárias é baseada nas técnicas e na análise do que você deseja. Após ter as informações no formato necessário, você pode aplicar as diferentes técnicas (individualmente ou juntas), independentemente do conjunto ou da estrutura de dados subjacentes necessários.

Aviso

O conteúdo aqui presente foi traduzido da página IBM Developer US. Caso haja qualquer divergência de texto e/ou versões, consulte o conteúdo original.