Este repositório contém uma coleção de atividades práticas desenvolvidas na disciplina de Aprendizado de Máquina, abrangendo uma variedade de técnicas e algoritmos fundamentais da área.
O repositório está organizado em três listas de exercícios, cada одна focada em diferentes aspectos do aprendizado de máquina:
- Lista_01: Classificação com k-NN
- Lista_02: Validação Cruzada e Regressão
- Lista_03: Redução de Dimensionalidade e Redes Neurais
Nesta primeira lista, o foco é a implementação e avaliação do algoritmo k-Nearest Neighbors (k-NN) para um problema de classificação de imagens.
HW1 - Sillas Rocha.ipynb: Este notebook contém a implementação do k-NN do zero, utilizando a distância Euclidiana. O algoritmo é aplicado ao dataset MNIST para a classificação de dígitos manuscritos. A análise inclui:- Teste de acurácia para diferentes valores de k (de 1 a 5).
- Visualização e análise da variância dos pixels das imagens para entender a distribuição dos dados.
- Exibição e comentário sobre as imagens que foram classificadas incorretamente.
A segunda lista de exercícios aprofunda-se em técnicas de validação de modelos e algoritmos de regressão.
Ex02 - Sillas Rocha.ipynb: O notebook aborda:- Validação Cruzada: Para a escolha do hiperparâmetro de regularização c em um modelo de Regressão Linear com penalização L2 (Ridge).
- Regressão com k-NN: Aplicação do k-NN para predição de valores contínuos.
- Nested Cross-Validation: Uma implementação de validação cruzada aninhada para comparar o desempenho da Regressão Ridge com o k-NN Regressor no dataset California Housing.
- Gradiente Descendente Estocástico (SGD): Implementação do SGD para otimizar um modelo de regressão linear.
A terceira lista explora tópicos mais avançados, incluindo redução de dimensionalidade e redes neurais profundas.
Ex03 - Sillas Rocha.ipynb: Este notebook é dividido em duas partes principais:- Análise de Componentes Principais (PCA):
- Implementação do PCA do zero para redução de dimensionalidade.
- Aplicação no dataset Penguins para projetar os dados em 2D.
- Cálculo da variância explicada para diferentes números de componentes.
- Comparação dos resultados com a implementação da biblioteca
scikit-learn.
- Redes Neurais com PyTorch:
- Autoencoder: Construção de um autoencoder para o dataset MNIST, com o objetivo de aprender uma representação latente em 2D e visualizar os embeddings.
- Rede Neural Convolucional (CNN): Treinamento de uma CNN para classificação de imagens do dataset CIFAR-10, incluindo uma busca por hiperparâmetros (taxa de aprendizado e decaimento de peso) e uso de early stopping.
- Inferência Bayesiana: Utilização da Aproximação de Laplace e Inferência Variacional para estimar a incerteza em um modelo de regressão logística no dataset de câncer de mama.
- Análise de Componentes Principais (PCA):
Lista_01/,Lista_02/,Lista_03/: Diretórios contendo os notebooks e dados para cada lista de exercícios.*.ipynb: Notebooks Jupyter com o código, análises e respostas de cada exercício.penguins.csv: Dataset utilizado no exercício de PCA da Lista 03..gitignore,pyproject.toml,uv.lock,LICENSE,.python-version: Arquivos de configuração e licença do projeto.