My Projects

Plato, Greek Philosopher

Speaking with Plato

    Made with:

I’ve been reading philosophy since I was a kid and I’ve always wondered how awe-inspiring it would be to be able to talk with philosophers from the past. How would it feel to be able to have a conversation with them?

This project explores all of Plato's works and features two deep learning models that can generate new text and hold a conversation with the user. The bot that generates new text is based on a GPT-2 model, while the chatbot is based on dialoGPT and emulates Socrates. Both models are taken from HuggingFace's model hub and are finetuned on Plato's works using the Transformers library.

The project features a simple Tkinkter GUI that allows the user to interact with the chatbot, generate new text, and change the parameters of the models.

SNAP Assessment, Musical Universe

SNAP (Screening for Neuropsychology and Psychiatry)

    Made with:

A state of the art musical screening assessment that takes only 15 minutes to complete and outperforms gold standard assessments widely used by psychologists and psychiatrists across 15+ mental health conditions. Predictions are made using an Imbalanced Random Forest classifier that was trained on an imbalanced binary prediction problem and optimized for the F1 weighted statistic.

The backend API is written in Python and built with the FastAPI framework. It is deployed as a Docker container on AWS Lambda. The API connects to a DynamoDB database. The frontend was built with JavaScript and the Svelte Kit framework. The app is containerized and deployed with GitHub Actions on the AWS App Runner for scalability. Data drift and model performance are monitored using DynamoDB streams, which feeds the data into the processing pipeline whose results are visualized with AWS Quicksight. The CI/CD pipeline is built with GitHub Actions and the AWS CDK.

Disclaimer: I didn't code the frontend.

S&P 500 Cointegrated Pairs for Pairs Trading

Cluster Analysis for Pairs Trading

    Made with:

Pairs trading is a strategy in which a trader buys one asset while shorting another. The main premise of the trade is that if the two pairs diverge, they will almost certainly converge again, resulting in profit for the trader. As a result, the strategy requires cointegrated pairs to function, making it a clustering unsupervised machine learning problem.

I obtained all S&P 500 stocks from Yahoo Finance and preprocessed them for the clustering algorithm. Several clustering algorithms were employed and evaluated. The best performing algorithm was chosen based on the silhouette score, and the cointegration test was run on the given clusters to extract the cointegrated pairs. A TSNE algorithm was used to visualize the pairs.

My Skills

My Certificates

Google Data Analytics Specialization

Coursera

  • Issued March 2022
  • Credential ID: UP4DYDE9ZM7C

Deep Learning Specialization

Coursera

  • Issued January 2022
  • Credential ID: WWWA84VFXN6V

Contact Me

Email

igorradovanovic20@gmail.com

GitHub

IgorWounds

Send Email