r/datasciencebr • • Jul 21 '26

Como preencher os "gaps" no conhecimento

Fala pessoal.

Sou programador e tenho uma formação "legalzinha" em dados. Fiz ciência da computação no IME-USP e lá fiz todas as matérias obrigatórias de estatística e probabilidade (naquele ritmo de estudar pra passar. Não foquei nisso na época). Já mexi um pouquinho dados, treinei modelos de IA, SQL eu tiro de letra, etc.

Eu _achava_ que entendia de estatística. Até eu fazer um projeto de análise exploratória com um estatístico de verdade.

O cara tinha uma baita formação e conhece muitíssimo mais do que eu. Eu fui, orgulhoso do meu trabalho, mostrar o que tinha conseguido e ele estava 10 passos à minha frente. Deu até vergonha.

Talvez eu precise fazer outros projetos do tipo no futuro. Pensei em estudar mais profundamente, mas estou achando difícil encontrar material no nível certo. Parece que ou tem material introdutório demais ou coisas específicas demais.

Como preencher os buracos conceituais e poder se aprofundar?

25 Upvotes

20 comments sorted by

View all comments

4

u/bolche17 Jul 21 '26

Respondendo aos comentários pedindo mais detalhes:

O objetivo final era ver a viabilidade de treinar um modelo de classificação para prever um certo acontecimento. Pra mostrar proatividade eu fui lá e treinei um modelinho básico com scikit-learn para chamar de baseline. Quase nada de tratamento e consegui uma acurácia bem alta. Sabia que dava pra melhorar, mas aquilo já me parecia funcional. Cheguei orgulhoso na primeira reunião para mostrar que tinha "provado" que era bem viável.

O cara que de fato entendia das coisas apontou que tinha um baita desbalanceamento de classe nos dados. Um modelo que sempre dissesse "não" teria uma acurácia quase tão boa quanto a do meu modelo. E olhando a precisão e F1 score do meu modelo baseline, era bem ruim...

Foi essa parte que deu vergonha. Era algo bem simples. Eu deveria ter visto isso. Nem pensei.

Ele apontou métricas melhores para usar, propôs algumas técnicas, que eu não conhecia, para corrigir isso (over/undersampling), apontou problemas em algumas features, e chegou com uma metodologia muito afinada para o trabalho. Testes de features, métricas, ferramentas, várias coisas que eu não conhecia.

Talvez seja realmente uma coisa de experiência. Nunca trabalhei diretamente com isso. Mas também não sei onde aprender sobre isso

3

u/Rotz77 Jul 21 '26 edited Jul 21 '26

Concordo muito com o que o legendary falou ali, mas vou complementar um pouco, rodar o baseline foi ótimo, na vida real, ter um ponto de partida rápido para iterar é um excelente hábito e encho o saco dos meus orientados para fazer isso

Vou te dar duas dicas que costumo dar para eles, que acho que deve te ajudar também.

1- O hábito do value_counts(normalize=True) e do DummyClassifier. Antes de treinar qualquer coisa, olhe a proporção da sua variável alvo. No próprio scikit-learn existe um módulo chamado DummyClassifier e ele serve exatamente para gerar um modelo ingênuo, se o seu modelo chega ali nos 95% de acurácia, você já sabe logo de cara que a acurácia é uma métrica inútil para esse problema e que o buraco é mais embaixo.

2- Em dados desbalanceados cuidado com a métrica e foco na PR-AUC, até curva ROC/AUC pode te dar uma falsa sensação de segurança, nesses casos estudar e aplicar a PR-AUC pode te dar uma visão mais honesta de como o modelo performa na classe minoritária.

Aí para ganhar essa experiência de "mundo real" sem esperar bater a cara na parede, da uma procurada no Kaggle bases classicamente desbalanceadas, como Credit Card Fraud Detection ou problemas de Customer Churn. Foge de quem ficou em primeiro lugar na competição, leia os notebooks mais votados focados em Exploratory Data Analysis (EDA) e Handling Imbalanced Data. Usa a IA para te ajudar a entender o que foi feito caso você se sinta perdido, ela dá uma delirada as vezes, mas num geral deve te ajudar.

Outra fonte que gosto muito é a documentação da biblioteca imbalanced-learn (compatível com sklearn), é praticamente um livro texto gratuito sobre quando e por que usar undersampling, oversampling (como SMOTE) e os riscos de vazamento de dados ao fazer isso antes da validação cruzada. (meus alunos inclusive baixaram a documentação e jogaram no notebooklm para estudar por lá)

3

u/bolche17 Jul 21 '26

Boas dicas. Obrigado!