Olá, me chamo Pedro Vitor

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

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

Regressão linear

Desenvolvimento do algoritmo de regressão linear de forma iterativa. Os dados são tratados, desde a verificação de valores faltantes até a normalização de dados numéricos.

Python 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

Redes Neurais

Rede neural para representações matemáticas

Estas são as mais "simples". Desenvolvi duas implementações de redes neurais utilizando PyTorch para entender como a rede se modifica e aprende ao ajustar seus parâmetros como camadas, neurônios e épocas e como técnicas para evitar o overfitting, como o dropout alteram a rede. Essas duas implementações foram projetadas para regressão linear e para uma onda senoidal.

Python Pytorch Numpy Pandas Deep learning

Classificação com redes neurais

Um sistema de rede neural densa treinada para resolver um problema de classificação. O projeto utiliza um problema clássico, classificar quem sobrevive ao titanic. O pipeline foi, limpeza e preparação dos dados, normalização dos dados, treinamento alinhado com validação e técnicas para evitar overfitting como dropout.

Python Aprendizado de máquina Keras Seaborn Tensorflow Scikit learn Pandas Numpy Matplotlib

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

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. Como futuras funcionalidades estão planejadas Predições, Estatísticas, Dashboard.

Python FastAPI Estatística sqlalchemy Dados Postgres ORM Docker

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

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.