Reconhecimento de Padrões
Essa playlist é o caderno de anotações da matéria de Reconhecimento de Padrões que eu cursei, dada pelo Dr. Francisco Boldt. Ele é fera, literalmente coda os modelos na mão, ao vivo, na aula, sem slide de fórmula pronta, e agora tá me lecionando redes neurais também. Se você caiu aqui vindo de uma aula dele, já sabe do que eu tô falando.
Diferente da playlist da especialização do Andrew Ng, aqui os notebooks das aulas são bem mais enxutos: pouquíssima célula de markdown, é o professor codando ao vivo e a gente acompanhando. Então o trabalho de esmiuçar o "por quê" por trás de cada linha de código é maior, e pra isso eu uso como referência teórica o livro Pattern Recognition and Machine Learning, do Christopher Bishop (2006), praticamente uma bíblia da área.
Os notebooks vêm do repositório da matéria, pablobelmiro/aulasml, um fork do repositório original do próprio Dr. Boldt, onde ele publica o código de cada aula. Nos posts dessa playlist, quem "faz" o código é sempre ele, o professor; a explicação de fundamento, com a metáfora, a analogia torta e o tom de colega do lado, essa é a minha.
Cada aula da matéria vira um post aqui. Começamos pelo começo: o mesmo problema de regressão linear que já vimos na outra playlist, só que agora com o código sendo escrito na cara do quadro.
Playlists · 15 posts
- Regressão Linear na Unha: Construindo um Estimador do Zero
Primeira aula da matéria de Reconhecimento de Padrões: o professor pega um dataset real de diabetes, chuta coeficientes na mão, e constrói um estimador próprio seguindo a API do scikit-learn. Eu reconto o porquê de cada passo, com o Bishop do lado.
- Equação Normal: Resolvendo Regressão numa Conta Só
Aula 2b e 2c: em vez de iterar com gradiente descendente, o professor resolve a regressão linear numa única conta fechada com a pseudo-inversa, bate exatamente com o LinearRegression do scikit-learn, e compara contra mais cinco regressores diferentes. Eu explico o porquê de cada conta.
- Classificação com um Limiar: Quando Regressão Vira Decisão
Aula 3a e 3b: o professor reaproveita a mesma classe de regressão linear pra classificar câncer de mama, mostra por que faltava um limiar, e depois normaliza os dados por um motivo diferente de tudo que eu já tinha visto.
- KNN: Classificar Olhando pros Vizinhos
Aula 4a: o professor implementa K-vizinhos-mais-próximos na unha, bate exatamente com o KNeighborsClassifier do scikit-learn, e mostra que K não é 'quanto maior melhor'. Eu explico por que K é um parâmetro de suavização.
- Pipeline, Validação Cruzada e GridSearch: o Fluxo de Verdade
Aula 4b, 4c e 4d: o professor monta o fluxo profissional de verdade em cima do KNN, e no meio do caminho eu encontro um bug real no código dele, um return que mora dentro do loop errado.
- Árvores de Decisão: Perguntas de Sim ou Não até Sobrar Só uma Resposta
Aula 5 e 5b: o professor constrói uma árvore de decisão gulosa do zero, guiada pela impureza de Gini, primeiro em atributos categóricos, depois em atributos contínuos. Eu explico por que limitar a profundidade nem sempre ajuda.
- Ensembles: a Sabedoria das Multidões (e os Seus Limites)
Aula 6: o professor combina vários classificadores fracos em cima de rostos reais e chega a 96%, mas o final é uma lição de humildade: um modelo simples sozinho bate cada ensemble tentado, até o mais sofisticado.
- O Titanic: Meu Primeiro Dado Sujo de Verdade
Aula 7: o professor monta um pipeline completo de pré-processamento em cima do dataset clássico do Titanic, dado faltando e tudo, e mostra o mesmo erro de medir no dado de treino que já vimos antes, só que dessa vez com consequência real.
- K-means: Quando Agrupar Vira um Truque de Engenharia de Features
Aula 8: o professor entra em aprendizado não supervisionado com K-means feito à mão, o método do cotovelo pra escolher K, e um truque que eu não esperava: usar os grupos encontrados como features novas pra um classificador supervisionado.
- DBSCAN e Aprendizado Semi-Supervisionado: Quando Agrupar Ajuda a Rotular
Aula 9: o professor mostra onde K-means falha feio, apresenta o DBSCAN como alternativa por densidade, e depois usa clustering pra escolher melhor quais exemplos rotular quando rótulo é caro.
- PCA: Reduzir Dimensão sem Perder o que Importa (Nem Sempre)
Aula 10: o professor usa PCA pra comprimir dado de verdade sem perder muita acurácia, mas fecha com um aviso importante: PCA só olha pra variância, não pro rótulo, e às vezes joga fora exatamente a informação que você precisava.
- Misturas Gaussianas e Detecção de Anomalia: Clustering com Formato
Aula 11: o professor troca o K-means por misturas gaussianas quando os grupos não são redondos, usa densidade pra achar anomalia, e depois compara três detectores de anomalia diferentes, todos precisando de ajuste fino pra funcionar bem.
- Detecção de Fraude: Quando 99.8% de Acurácia Não Significa Nada
Aula 12: o professor usa o dataset real de fraude de cartão do Kaggle (492 fraudes em quase 285 mil transações) pra mostrar por que acurácia mente em dado desbalanceado, e um jeito de vazar dado tão sutil que o resultado errado parece ótimo.
- Seleção de Características: Deixar o Rótulo Escolher, não só a Variância
Aula 13: o professor constrói do zero uma régua pra rankear quais pixels do MNIST realmente ajudam a distinguir um dígito do outro, e mostra que descartar 77% das variáveis quase não custa acurácia.
- Texto Vira Vetor: Meus Primeiros Passos em NLP
Aula 14, a última da matéria: o professor transforma resenha de filme em número, na mão, e mostra que um TF-IDF caseiro bate com o TfidfVectorizer oficial do scikit-learn.