Olá, me chamo Pedro Vitor

Sou estudante de Ciência da Computação com foco em Ciência de dados e engenharia de software. Também estudo arquitetura de software e System Desing. Para que, com isso possa chegar a engenheiro de machine learning.

Hello, and thanks for the visit. If you do not know portuguese, you can translate to english by clicking in the translate button on the menu.

Meus Projetos

Ciência de dados

Sistema de recomendação

Implementei e avaliei dois sistemas de recomendação: uma abordagem baseada em memória utilizando KNN e uma abordagem baseada em modelo utilizando SVD by Funk. O pipeline envolveu limpeza e organização do dataset, normalização dos dados, treinamento dos modelos e avaliação de desempenho. Na abordagem baseada em SVD, foram aprendidos fatores latentes de usuários e itens para modelar suas interações. Em ambas as abordagens, realizei hiperparametrização para otimizar os modelos e comparar seu desempenho. O modelo apresentou RMSE de 0,8527 e RMSE de validação de 0,9313. O projeto inclui um artigo com a metodologia, experimentos e resultados detalhados.

Python Aprendizado de máquina KNN SVD by funk Pandas Numpy

Sistema de recomendação de filmes

Um simples sistema de recomendação de filmes que diferente do descrito acima, foi feito utilizando a biblioteca Scickit learn. O usuário escolhe a quantidade de filmes que deseja avaliar e dá a nota para cada um. Com isso o sistema recomenda uma lista de filmes que ele possivelmente irá gostar. Nessa implementação foram feitas duas engenharias, uma utilizando sopa de palavras e uma que não utilizava essa abordagem

Python Aprendizado de máquina KNN Scikit learn Pandas Numpy

Mini curso de aprendizado de máquina.

Planejamento e lecionamento de um mini curso introdutório abordando conceitos de aprendizado supervisionado, incluindo Regressão Linear, Regressão Logística, Árvores de Decisão e Clusterização. O curso apresentou de forma prática e didatica todas as etapas do pipeline de machine learning, desde pré-processamento, treino e avaliação de modelos, utilizando Python e Scikit-learn. Uma vez que a apresentação foi aberta a comunidade acadêmica em geral.

Python Estatística Aprendizado de máquina Scikit learn Pandas Numpy Matplotlib

Análise de dados

Foi realizada uma (EDA) análise exploratória do dados, utilizando os próprios dados coletados pelo IBGE(Instituto Brasileiro de Geografia e Estatistica). O intuito do trabalho foi realizar a mineração dos dados e com isso encontrar dados ocultos para melhor atenção aos casos necessários. Durante a análise foram realizados tratamento dos dados e clusterização dos mesmos para melhor análise.

Python Aprendizado de máquina Mineração de dados Pandas Numpy Matplotlib Seaborn

Regras de associação

A análise desse projeto foi realizada de forma diferente. Utilizando regras de associação, como Support ,Confidence ,Lift ,Conviction. Visando a exploração e descoberta de quais ocorridos e caracteristicas levavam um cliente a abandonar um serviço de uma empresa de telefonia. De outra forma, analisar o que levava uma pessoa ao churn. Além das regras de associação foi utilizado o algoritmo FP-Growth para auxiliar na análise dos dados.

Python Aprendizado de máquina Mineração de dados FP-Growth Pandas Numpy Matplotlib

Clustering

Foi feita a análise e clusterização de um conjunto de dados sobre como era o rendimento de estudantes em uma escola, para descobrir como era o perfil dos alunos e como era a sua correlação. E se necessário, aplicar medidas poderiam ajudar aqueles com redimento não muito bom. Previarmente foi feita o ETL dos dados e também teve a necessidade da aplicação do PCA para ter uma melhor visualização dos grupos formados. Para o agrupamento foi utilizado o algortimo K-prototypes devido a sua capacidade de conseguir unir dados categóricos e não categóricos em cluster.

Python Aprendizado de máquina Kmodes Kprototypes Pandas Numpy Matplotlib

Cluster de Embeddings

Experimento para análise de proximidade semântica com embeddings: frases e adjetivos são vetorizados e agrupados para revelar como modelos de linguagem organizam significados no espaço latente. O pipeline inclui geração de embeddings, redução de dimensionalidade (PCA/UMAP), clusterização e visualização interativa para validar hipóteses de prompt engineering e similaridade textual.

Python Embeddings Sentence-Transformers LLMs Scikit learn UMAP Pandas Numpy

F1 vrum-vrum

Uma API utilizando FastAPI. O intuito do projeto é construir uma API com os dados das temporadas da fórmula 1. A API vai permitir consultar Pilotos, Equipes, Circuitos, Corridas, Temporadas e Resultados.

Python FastAPI Estatística sqlalchemy Dados Postgres ORM Docker Automação Engenharia de software

Redes Neurais

Rede neural recorrente

Neste projeto, desenvolvi um classificador de imagens utilizando o conjunto de dados CIFAR-10. Para a validação, utilizei a técnica de holdout, dividindo os dados em 80% para treinamento, 10% para teste e 10% para validação. Para reduzir o overfitting, apliquei a técnica de data augmentation, realizando operações de espelhamento, rotação e normalização das imagens durante o treinamento.

Python Pytorch Numpy Pandas Deep learning

Rede neural recorrente(encoders)

Implementação de auto encoders para detecção de anomalias em imagens. O objetivo foi ir alterando variáveis da arquitetura para um melhor resultado na detecção de anomalias.

Python Pytorch Numpy Pandas Deep learning

Rede neural LSTM

Desenvolvi um estimador de preço para o Bitcoin utilizando LSTM. Utilizei o histórico de variações de preço da moeda, mas considerei apenas dados a partir de 2023. Por quê? Porque meu experimento levava mais de 6 horas para ser concluído, isso utilizando a GPU do Google Colab. Normalizei os atributos usando o z-score, pois essa é (até onde sei) a melhor maneira de normalizar sem causar flutuações significativas nas médias e nos desvios-padrão dos dados, nem permitir que eles sejam influenciados por variações extremas.

Python Pytorch Numpy Pandas Deep learning

Engenharia de software

Bot API F1

Uma API que utiliza um bot do Telegram para informar sobre corridas, pilotos e as notícias mais recentes sobre o esporte. Essas informações são coletadas via scraping e passadas para uma LLM que condensa e organiza melhor o texto.

Python FastAPI Telegram Bot Web Scraping LLM Automação

E-commerce de jogos

Construí uma plataforma de e-commerce full stack utilizando AdonisJS que roda sobre o NodeJS. A plataforma se trata de uma loja de jogos, seguindo o padrão MVC para diversas plataformas, desde PC até o PS5. O backend do projeto foi construído com uma API REST, contendo autenticação, controle de sessões e gerênciamento de de dados(SQLite). O controle do banco de dados foi feito utilizando ORM, tendo migrations e seeders, utilizado a API RWAG para a população de dados. Como funcionalidades do projeto há, CRUD de usuários e itens com painel administrativo, lista de desejos e sistema de comentários. Além disso o projeto contém debouncing e paginação para consultas ao banco de dados, persistência de carrinho de compras e a integração do gateway de pagamentos Stripe.

Desenvolvimento web TypeScript JavaScript Node HTML/CSS Banco de dados ORM

HUB de Alunos

Plataforma colaborativa para conectar estudantes: compartilhamento de materiais por disciplina, fóruns tira-dúvidas, mural de eventos e sistema de mentoria. Construída com Next.js App Router, autenticação RBAC, Prisma + Postgres, validação Zod e design mobile-first.

Next.js TypeScript Prisma Postgres Tailwind NextAuth

Refatoração do Projeto de Extensão

Modernização de sistema legado de extensão universitária via Strangler Fig: de monolito acoplado para Clean Architecture com SOLID, inversão de dependência, suíte de testes (18% → 74% cobertura), Docker e CI/CD — reduzindo deploy de 45min para 6min.

Clean Architecture SOLID Docker CI/CD Vitest TypeScript

Algoritmos

Programação competitiva e algoritmos

Parte referente ao meu estudo/projetos de estudo em algoritmos. O que me levou ao estudo para participar de maratonas de programação. Também há resoluções de alguns problemas do leetcode.

Algoritmos Programação competitiva Estrutura de dados C++ Python Programação dinâmica Lógica de programação Leet code Codeforce

Pesquisa

LLMs, economia e BigFive

Durante meu TCC desenvolvi uma pesquisa que engloba Computação, economia e psicologia. O intuito foi utilizar LLMs para simular tomadas de decisões e estudar a estratégia das LLMs. E como variações do espectro de personalidade dividido pelo BigFive e contextos macro econômicos influenciam a tomada de decisão.

Python Pesquisa

Um pouco sobre mim

Um pouco sobre meu aprendizado

Durante a faculdade comecei meus estudos pela linguagem C. Depois disso ao estudar POO aprendi sobre o conceito utilizando a linguagem JAVA, isso vendo polimorfismo, herança e encapsulamento. Também estudei um pouco de C++ para programação competitiva. Como há no portifólio também já utilizei a linguagem TypeScript para construir um e-commerc com NodeJS(utilizando agentes). Atualmente tenho focado mais em python, Golang e SQL. Onde tenho estudo mais a parte prática, um pouco de modelagem e Querys(uma vez que as aulas de banco de dados não foram lá essas coisas) por conta do caminho que pretendo seguir, Ciência de dados/MLOps. Utilizo linux em meu laptop para programar e também para aprendizado que envolve docker, terminal etc. Na faculdade também dirigi meus estudos para a área de inteligência artificial, estudando matérias como inteligência artificial, aprendizado de máquina, mineração de dados, redes neurais, processamento de linguagem natural e sistemas de recomendação. Agora estou estudando outro eixo, a parte de engenharia e arquitetura de software. Para finalizar, venho estudando system desing.

C C++ Java Python FastAPI Golang TypeScript NodeJS SQL Docker

Pode entrar em contato

Estou disponível para novas oportunidades e colaborações.