Eu tenho um grande conjunto de dados de um banco de dados relacional para o qual preciso criar um modelo de classificação. Normalmente, para essa situação, eu usaria a Programação Lógica Indutiva (ILP), mas devido a circunstâncias especiais, não posso fazer isso.
A outra maneira de resolver isso seria apenas tentar agregar os valores quando eu tiver uma relação externa. No entanto, tenho milhares de linhas importantes e distintas para alguns atributos nominais (por exemplo: um paciente com uma relação com várias prescrições medicamentosas distintas). Portanto, não posso fazer isso sem criar um novo atributo para cada linha distinta desse atributo nominal e, além disso, a maioria das novas colunas teria valores NULL se eu fizer isso.
Existe algum algoritmo que não seja ILP que permita a mineração de dados de bancos de dados relacionais sem recorrer a técnicas como pivotamento, que criariam milhares de novas colunas?
fonte
Respostas:
Primeiro, algumas advertências
Não sei ao certo por que você não pode usar o (sub) paradigma de programação * preferido, a Programação Lógica Indutiva (ILP) ou o que você está tentando classificar. Dar mais detalhes provavelmente levaria a uma resposta muito melhor; especialmente porque é um pouco incomum abordar a seleção de algoritmos de classificação com base no paradigma de programação ao qual eles estão associados. Se o seu exemplo do mundo real é confidencial, simplesmente crie um exemplo fictício, mas análogo.
Classificação de Big Data sem ILP
Dito isto, após excluir o ILP, temos outros 4 paradigmas de programação lógica em nosso conjunto de considerações:
além das dezenas de paradigmas e subparadigmas fora da programação lógica.
Dentro da Programação Lógica Funcional, por exemplo, existem extensões de ILP denominadas Programação Lógica Funcional Indutiva , que é baseada no estreitamento da inversão (isto é, inversão do mecanismo de estreitamento). Essa abordagem supera várias limitações do ILP e ( segundo alguns estudiosos, pelo menos ) é tão adequada para aplicação em termos de representação e tem o benefício de permitir que os problemas sejam expressos de uma maneira mais natural.
Sem saber mais sobre as especificidades do seu banco de dados e as barreiras que você enfrenta ao usar o ILP, não posso saber se isso resolve o seu problema ou sofre dos mesmos problemas. Como tal, também adotarei uma abordagem completamente diferente.
O ILP é contrastado com abordagens "clássicas" ou "proposicionais" para mineração de dados . Essas abordagens incluem a carne e os ossos do aprendizado de máquina, como árvores de decisão, redes neurais, regressão, ensacamento e outros métodos estatísticos. Em vez de desistir dessas abordagens devido ao tamanho dos seus dados, você pode ingressar nas fileiras de muitos cientistas de dados, engenheiros de Big Data e estatísticos que utilizam a computação de alto desempenho (HPC) para empregar esses métodos em conjuntos de dados maciços (existem também amostragem e outras técnicas estatísticas que você pode optar por utilizar para reduzir os recursos computacionais e o tempo necessário para analisar o Big Data em seu banco de dados relacional).
O HPC inclui coisas como a utilização de múltiplos núcleos de CPU, o dimensionamento de sua análise com o uso elástico de servidores com alta memória e um grande número de núcleos rápidos de CPU, o uso de dispositivos de armazenamento de dados de alto desempenho, o uso de clusters ou outras formas de computação paralela, etc. não tenho certeza em qual idioma ou pacote estatístico você está analisando seus dados, mas, como exemplo, este CRAN Task View lista muitos recursos de HPC para a linguagem R, o que permitiria escalar um algoritmo proposicional.
fonte