Preciso implementar um programa que classifique os registros em duas categorias (verdadeiro / falso), com base em alguns dados de treinamento, e fiquei pensando em qual algoritmo / metodologia eu deveria estar olhando. Parece haver muitos deles para escolher - Rede Neural Artificial, Algoritmo Genético, Aprendizado de Máquina, Otimização Bayesiana etc. etc., e eu não sabia por onde começar. Portanto, minhas perguntas são: Como devo escolher um algoritmo de aprendizado que devo usar para o meu problema?
Se isso ajudar, aqui está o problema que preciso resolver.
Os dados de treinamento:
Os dados de treinamento consistem em muitas linhas como esta:
Precursor1, Precursor2, Boolean (true/false)
Na corrida
, receberei um monte de precursores.
Então,
- Escolho um algoritmo A de diferentes algoritmos (ou gere dinamicamente um algoritmo) e aplico-o em todas as combinações possíveis desses precursores e coleto os "registros" emitidos. O "registro" consiste em vários pares de valores-chave *.
Aplico um algoritmo impressionante e classifico esses registros em 2 categorias (verdadeiro / falso).
Vou gerar uma tabela que tem o mesmo formato que os dados do trem:
Precursor1, Precursor2, Boolean
E todo o programa é pontuado com base em quantas verdadeiras / falsas eu acertei.
*: "Record" s terá esta aparência (espero que isso faça sentido)
Record [1...*] Score
-Precursor1 -Key
-Precursor2 -Value
Há apenas um número finito de chaves possíveis. Os registros contêm subconjuntos diferentes dessas chaves (alguns registros possuem chave1, chave2, chave3 ... outros registros possuem chave3, chave4 ... etc.).
Na verdade, eu preciso de 2 aprendizados. Uma é para a etapa 1. Preciso ter um módulo que analise os pares de precursores etc. e decida qual algoritmo aplicar para emitir um registro para a comparação. Outra é a etapa 2. Preciso de um módulo que analise a coleção de registros e os categorize nas 2 categorias (verdadeiro / falso).
Agradeço antecipadamente!
fonte