Tópicos em alta
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
A equipe de Andrew Ng cometeu um grande erro em um artigo científico.
E isso aconteceu por causa da divisão aleatória dos dados.
Aqui está exatamente o que aconteceu (com solução):
É comum gerar conjuntos de trens e validação usando divisão aleatória.
No entanto, em muitas situações, pode ser fatal para a construção de modelos.
Considere construir um modelo que gera legendas para imagens.
Devido à natureza inerente da linguagem, toda imagem pode ter muitas legendas diferentes.
- Imagem-1 → Legenda-1, Legenda-2, Legenda-3, etc.
- Imagem-2 → Legenda-1, Legenda-2, Legenda-3, etc.
Veja isso 👇

Se usarmos a divisão aleatória, o mesmo ponto de dados (imagem) estará disponível nos conjuntos de treinamento e validação.
Como resultado, acabamos avaliando o modelo nas instâncias em que ele foi treinado.
Este é um exemplo de vazamento de dados (também chamado de vazamento de grupo), resultando em sobreajuste!

A mesma coisa aconteceu no artigo do Andrew Ng, onde prepararam um conjunto de dados médico para detectar pneumonia.
- Total de imagens = 112k
- Total de pacientes = 30 mil
Devido à divisão aleatória, as imagens dos mesmos pacientes estavam disponíveis tanto no conjunto de treinamento quanto no de validação.
Isso levou ao vazamento de dados, e as pontuações de validação ficaram muito melhores do que deveriam.
Este é o artigo👇 inicial deles

O agrupamento em grupo resolveu isso.
Existem dois passos:
1) Agrupar todas as instâncias de treinamento correspondentes a uma imagem.
2) Após o agrupamento, o GRUPO INTEIRO (todos os exemplos de uma imagem) deve ser atribuído aleatoriamente ao trem ou conjunto de validação.
Isso evitará o vazamento do grupo.

Se você usa o Sklearn, o GroupShuffleSplit implementa essa ideia.
Como exemplo, considere que temos o seguinte conjunto de dados:
- x1 e x2 são as características.
- y é a variável alvo.
- grupo denota os critérios de agrupamento.
Veja isso 👇

Primeiro, importamos o GroupShuffleSplit do sklearn e instanciamos o objeto.
Em seguida, o método split() desse objeto nos permite realizar a divisão de grupos. Ele retorna um gerador, e podemos desempacotá-lo para obter a seguinte saída:
- Os pontos de dados nos grupos "A" e "C" estão juntos no conjunto de treinamento.
- Os pontos de dados do grupo "B" estão juntos no conjunto de validação/teste.
Veja isso 👇

Alguns dias depois, a equipe de Andrew Ng atualizou o artigo após usar a mesma estratégia de agrupamento para garantir que os mesmos pacientes não acabassem tanto no treinamento quanto no conjunto de validação.
👉 A palavra é sua: você já enfrentou esse problema antes?

18,52K
Melhores
Classificação
Favoritos

