Obviamente, não posso falar por toda a indústria, mas trabalho na indústria e competi no Kaggle para compartilhar meu ponto de vista.
Primeiro, você tem razão em suspeitar que o Kaggle não corresponde exatamente ao que as pessoas estão fazendo na indústria. É um jogo, e sujeito a habilidade de jogo, com muitas restrições malucas. Por exemplo, na competição Santander atualmente em execução :
- Os nomes dos recursos foram misturados artificialmente para ocultar seu significado
- O conjunto de "treinamento" foi artificialmente limitado para ter menos linhas do que colunas especificamente, de modo que a seleção de recursos, a robustez e a técnica de regularização seriam indispensáveis para o sucesso.
- O chamado conjunto de "testes" possui uma distribuição marcadamente diferente da do conjunto de treinamento e os dois claramente não são amostras aleatórias da mesma população.
Se alguém me desse um conjunto de dados como este no trabalho, eu imediatamente me ofereceria para trabalhar com eles na engenharia de recursos, para que pudéssemos obter recursos mais úteis. Eu sugeriria que usássemos o conhecimento do domínio para decidir sobre prováveis termos de interação, limites, estratégias de codificação de variáveis categóricas, etc. Abordar o problema dessa maneira seria claramente mais produtivo do que tentar extrair significado de um arquivo de exaustão produzido por um engenheiro de banco de dados sem treinamento em ML.
Além disso, se você aprender, digamos, que uma determinada coluna numérica não é numérica, mas sim um código postal, pode obter dados de fontes de dados de terceiros, como o Censo dos EUA, para aumentar seus dados. Ou, se você tiver uma data, talvez inclua o preço de fechamento do S&P 500 para esse dia. Tais estratégias de aumento externo exigem conhecimento detalhado do conjunto de dados específico e conhecimento significativo do domínio, mas geralmente têm recompensas muito maiores do que melhorias puramente algorítmicas.
Portanto, a primeira grande diferença entre a indústria e o Kaggle é que, na indústria, os recursos (no sentido de dados de entrada) são negociáveis.
Uma segunda classe de diferenças é o desempenho. Geralmente, os modelos são implantados na produção de duas maneiras: 1) as previsões do modelo são pré-calculadas para cada linha em uma tabela de banco de dados muito grande; ou 2) um aplicativo ou site passa o modelo por uma única linha de dados e precisa de uma previsão retornada em tempo real. Ambos os casos de uso requerem um bom desempenho. Por esses motivos, muitas vezes você não vê modelos que demoram a prever ou usar uma quantidade enorme de memória, como os vizinhos mais próximos K ou florestas aleatórias extra. Uma regressão logística ou rede neural, por outro lado, pode pontuar um lote de registros com algumas multiplicações de matrizes, e a multiplicação de matrizes pode ser altamente otimizada com as bibliotecas corretas.Mesmo que eu pudesse obter talvez +0,001 AUC se empilhasse em outro modelo não paramétrico, não o faria porque a taxa de transferência e a latência da previsão cairiam demais.
Há uma dimensão de confiabilidade nisso também - empilhar quatro bibliotecas de terceiros diferentes e avançadas , como LightGBM , xgboost , catboost e Tensorflow (em GPUs , é claro) pode obter a redução de 0,01 no MSE que vence as competições do Kaggle, mas são quatro bibliotecas diferentes para instalar, implantar e depurar se algo der errado. É ótimo se você conseguir fazer tudo isso funcionar em seu laptop, mas fazê-lo funcionar em um contêiner do Docker em execução na AWS é uma história completamente diferente. A maioria das empresas não deseja liderar uma pequena equipe de devops apenas para lidar com esses tipos de problemas de implantação.
Dito isto, empilhar em si não é necessariamente um grande negócio. De fato, empilhar alguns modelos diferentes com desempenho igualmente bom, mas com limites de decisão muito diferentes, é uma ótima maneira de obter um pequeno aumento na AUC e um grande aumento na robustez. Apenas não jogue tantas pias de cozinha em seu conjunto heterogêneo que você começa a ter problemas de implantação.