Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Como eu posso identificar/saber se o resultado do modelo para os dados de teste foram acertos reais, ou falso positivos(por mera sorte) ?

Se eu tento poucas amostras no meu dataset, tipo umas 40 amostras no máximo. E eu só conseguisse dividir pouco pra treinar e testar. Mais não conseguisse dividir muito.

E ai suponha que eu queira testar uma rede neural multi layer perceptron Primeiro, eu defino uma seed aleatória fixa, pra eu sempre ter os mesmos resultados.

Se eu prefiro não usar Cross Validation

Suponha que nesse cenário eu não usei Cross Validation.

Aí para treinar o meu modelo eu usei uma mesma seed, e também exatamente as mesmas amostras de treino e teste, que eu escolhi.

Aí suponha que eu rodei esse código umas 3 vezes, e o resultado foi 68% de acerto.

Mais aí o Guilherme falou sobre a possibilidade de eu ter "sorte" ou "azar" na hora de escolher os dados de treino e teste.

Mais eu quero saber se nesse exemplo que dei, o modelo acertou 68% por que ele realmente "aprendeu" as características dos dados OU ENTÃO, se foi mera "sorte", ou seja, se meu modelo acertou por um mero acaso, talvez por que as amostras de treinamento ou de teste eram "favoráveis", por exemplo, se o meu modelo após ser treinado com os dados de treino tivesse a tendência de produzir 2 como resultado, e várias amostras dos dados de teste são 2, então, todas elas seriam erroneamente consideradas como "acertos", porém, nesse caso meus dados de teste seriam "favoráveis",

PERGUNTA: Mais se eu não quero usar Cross Validation, ainda é possível eu fazer testes matemáticos manualmente pra descobrir se o resultado o meu modelo foi verdadeiro, ou se foi mera sorte(de acertar por um acaso?

PERGUNTA: Eu não usando Cross validation, ainda é possível eu fazer análises manuais no meu dataset , pra ver descobrir se minhas amostras de treino e teste são boas ? Pra descobrir e identificar se minhas amostras de teste são erroneamente "favoráveis" como mencionei anteriormente?

PERGUNTA: Apenas analisando os dados de treino e teste, separados em duas planilha, Como eu posso identificar/saber se o resultado do modelo para os dados de teste foram acertos reais, ou falso positivos(por mera sorte) ?

Eu queria muito conseguir responder a essa minha pergunta, pra eu conseguir treinar um modelo pra algo específico e conseguir dizer se o modelo foi válido ou não, sem precisar usar Cross Validation.

Eu queria conseguir criar um script que toda vez que eu executar ele vai sempre produzir exatamente os mesmos resultados, devido a usar dados de treino e teste fixos e a mesma seed, independente do computador que eu testar. E com base nos resultados do modelo do script, conseguir fazer testes matemáticos manuais e tirar conclusões exatas com base nos dados do dataset, pra ser capaz de avaliar se as previsões do modelo são foram por que ele realmente conseguiu captar os padrões, ou então se foi mero acaso(por sorte). Seria legal conseguir aprender dicas e explicações de como eu poderia conseguir isso, pra eu ter um exemplo de Rede Neural, dentro de um único arquivo, e que eu possa confirmar que os resultados produzidos pelo modelo foram confiáveis.

PERGUNTAS CHAVE

Mais para esse exemplo, se eu não quero usar Cross Validation, ainda é possível eu fazer testes matemáticos manualmente pra descobrir se o resultado o meu modelo foi verdadeiro, ou se foi mera sorte(de acertar por um acaso?

Mesmo eu não usando Cross validation, ainda é possível eu fazer análises manuais no meu dataset, pra ver descobrir se minhas amostras de treino e teste são boas ? Pra descobrir e identificar se minhas amostras de teste são erroneamente "favoráveis" como mencionei anteriormente?

Apenas analisando os dados de treino e teste, separados em duas planilha, Como eu posso identificar/saber se o resultado do modelo para os dados de teste foram acertos reais, ou falso positivos(por mera sorte) ?

Uma duvida que eu tenho.

1 resposta
solução!

Olá William, como vai?

Entendo suas preocupações. Vou tentar responder suas perguntas de forma concisa e oferecer algumas sugestões alternativas ao Cross-Validation para avaliar seu modelo:

  1. É possível fazer testes matemáticos manualmente sem Cross-Validation? Sim, existem algumas alternativas:

    • Análise de resíduos: Examine a diferença entre as previsões e os valores reais.
    • Testes estatísticos: Use testes como o t-test para comparar as previsões com um modelo nulo.
    • Curva ROC e AUC: Para problemas de classificação binária.
    • Bootstrapping: Reamostragem para estimar a variabilidade do desempenho do modelo.
  2. Análises manuais para avaliar amostras de treino e teste:

    • Compare as distribuições das features em ambos os conjuntos.
    • Verifique se há desbalanceamento de classes.
    • Analise estatísticas descritivas (média, desvio padrão, etc.) de ambos os conjuntos.
    • Faça visualizações (histogramas, boxplots) para comparar os conjuntos.
  3. Identificar acertos reais vs. falsos positivos:

    • Analise a matriz de confusão detalhadamente.
    • Calcule métricas como precisão, recall e F1-score para cada classe.
    • Examine casos individuais, especialmente os erros, para entender padrões.
    • Use técnicas de interpretabilidade de modelo (ex: SHAP values) para entender as decisões do modelo.

Sugestões adicionais:

  • Aumente seu conjunto de dados, se possível.
  • Use técnicas de regularização para evitar overfitting.
  • Implemente validação hold-out repetida com diferentes seeds.
  • Considere modelos mais simples que podem generalizar melhor com poucos dados.

Lembre-se, com um conjunto de dados pequeno, é difícil ter certeza absoluta sobre o desempenho do modelo. Estas técnicas podem ajudar, mas aumentar o tamanho do dataset seria ideal.

Espero ter ajudado.

Abraço.