O exemplo mais simples usado para ilustrar isso é o problema do XOR (veja a imagem abaixo). Imagine que você é dado dados contendo de e coordenadas e a classe binário de prever. Você pode esperar que seu algoritmo de aprendizado de máquina descubra o limite de decisão correto por si só, mas se você gerou o recurso adicional , o problema se torna trivial, pois fornece um critério de decisão quase perfeito para a classificação e você usou apenas aritmética simples !y z = x y z > 0xyz= x yz> 0
Portanto, embora em muitos casos você possa esperar do algoritmo encontrar a solução, alternativamente, pela engenharia de recursos, você pode simplificar o problema. Problemas simples são mais fáceis e rápidos de resolver e precisam de algoritmos menos complicados. Algoritmos simples são geralmente mais robustos, os resultados são mais interpretáveis, são mais escaláveis (menos recursos computacionais, tempo de treinamento etc.) e portáteis. Você pode encontrar mais exemplos e explicações na maravilhosa palestra de Vincent D. Warmerdam, apresentada na conferência da PyData em Londres .
Além disso, não acredite em tudo o que os profissionais de marketing de aprendizado de máquina lhe dizem. Na maioria dos casos, os algoritmos não "aprendem por si mesmos". Você geralmente tem tempo, recursos, poder computacional e os dados geralmente têm tamanho limitado e são barulhentos, nada disso ajuda.
Levando isso ao extremo, você pode fornecer seus dados como fotos de anotações manuscritas do resultado do experimento e passá-los para uma rede neural complicada. Primeiro aprenderia a reconhecer os dados nas imagens, depois aprenderia a entendê-los e faria previsões. Para fazer isso, você precisaria de um computador poderoso e de muito tempo para treinar e ajustar o modelo, além de precisar de grandes quantidades de dados devido ao uso de uma rede neural complicada. O fornecimento de dados em formato legível por computador (como tabelas de números) simplifica tremendamente o problema, pois você não precisa de todo o reconhecimento de caracteres. Você pode pensar na engenharia de recursos como um próximo passo, onde você transforma os dados de maneira a criar significantesrecursos, para que seu algoritmo tenha menos ainda que descobrir sozinho. Para fazer uma analogia, é como se você quisesse ler um livro em idioma estrangeiro, para que você precisasse aprender o idioma primeiro, em vez de lê-lo traduzido no idioma que você entende.
No exemplo de dados do Titanic, seu algoritmo precisaria descobrir que somar membros da família faz sentido para obter o recurso "tamanho da família" (sim, estou personalizando aqui). Esse é um recurso óbvio para um ser humano, mas não é óbvio se você vir os dados apenas como algumas colunas dos números. Se você não souber quais colunas são significativas quando consideradas em conjunto com outras colunas, o algoritmo pode descobrir isso tentando cada combinação possível dessas colunas. Claro, temos maneiras inteligentes de fazer isso, mas ainda assim, é muito mais fácil se as informações forem fornecidas ao algoritmo imediatamente.