Portanto, temos potencial para um aplicativo de aprendizado de máquina que se encaixe perfeitamente no domínio do problema tradicional resolvido pelos classificadores, ou seja, temos um conjunto de atributos que descrevem um item e um "bloco" no qual eles terminam. No entanto, em vez de criar modelos de probabilidades, como Naive Bayes ou classificadores similares, queremos que nossa saída seja um conjunto de regras aproximadamente legíveis por humanos que possam ser revisadas e modificadas por um usuário final.
O aprendizado de regras de associação se parece com a família de algoritmos que resolve esse tipo de problema, mas esses algoritmos parecem focar na identificação de combinações comuns de recursos e não incluem o conceito de um intervalo final para o qual esses recursos podem apontar. Por exemplo, nosso conjunto de dados é mais ou menos assim:
Item A { 4-door, small, steel } => { sedan }
Item B { 2-door, big, steel } => { truck }
Item C { 2-door, small, steel } => { coupe }
Eu só quero as regras que dizem "se é grande e uma porta 2, é um caminhão", não as regras que dizem "se é uma porta 4 também é pequena".
Uma solução alternativa em que posso pensar é simplesmente usar algoritmos de aprendizado de regras de associação e ignorar as regras que não envolvem um depósito final, mas isso parece um pouco invasivo. Perdi alguma família de algoritmos por aí? Ou talvez eu esteja abordando o problema incorretamente para começar?
fonte
Na verdade, é ainda mais simples do que isso: pelo que você descreve - você está apenas procurando um algoritmo básico de árvore de classificação (portanto, não há necessidade de variantes um pouco mais complexas, como a C4.5, que são otimizadas para a precisão da previsão). O texto canônico é:
http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418
Isso é prontamente implementado no R:
http://cran.r-project.org/web/packages/tree/tree.pdf
e Python:
http://scikit-learn.org/stable/modules/tree.html
fonte
Você pode dar uma olhada no aprendiz de regras do CN2 em Orange 2 http://orange.biolab.si/orange2/
fonte
Você deve tentar o pacote arules em R. Ele permite criar não apenas as regras de associação, mas também especificar o tamanho de cada regra, a importância de cada regra e também pode filtrá-las, e é isso que você está procurando (tente o comando rhs () deste pacote).
fonte