This repository is a course-spanning machine learning workspace. It collects foundational lab notebooks, class tasks, fast experiments, supporting slides and reports, and a few small application-style projects built with Flask and Streamlit.
The work moves from early data handling and classical machine learning into clustering, neural networks, transformers, retrieval-augmented generation, and YOLO-based computer vision. It is best understood as a learning archive plus a set of prototype projects rather than a single packaged application.
- Classical ML notebooks covering data loading, preprocessing, feature engineering, regression, classification, and evaluation
- Unsupervised learning work on clustering and related exploratory analysis
- Neural network exercises using TensorFlow and custom NumPy implementations
- NLP experiments with Hugging Face pipelines and GPT-2
- Small web apps built with Flask and Streamlit
- RAG and local-document question answering experiments
- A multi-task YOLO11 computer vision demo
- Course slides, PDFs, reports, exported notebooks, and zipped lab submissions
Top-level notebooks contain the main machine learning lab progression:
1167-Lab1-BSCS_A_7.ipynbData loading practice with CSV, Excel, JSON, dictionaries, and URL-based sources using pandas.1167-Lab2-BSCS-A_7.ipynbEarly regression concepts including logistic and polynomial regression, plus train/test split workflow.1167-Lab3-BSCS_A_7.ipynbData preprocessing and feature selection.1167-Lab3-BSCS_A_7_ClassTask.ipynbLogistic regression from scratch, logistic regression with scikit-learn, and polynomial regression practice.1167-Lab4-BSCS-A_7_Activity.ipynbKNN, SVM, voting classifiers, and credit card fraud detection with SMOTE on imbalanced data.1167-Lab4-BSCS_A.ipynbShort notebook tied to the imbalance topic from Lab 4.1167-Lab5-BSCS_A_7_Activity.ipynbUnsupervised learning and clustering using the Mall Customers dataset.1167-Lab5-BSCS_A_7_ClassTask.ipynbUnsupervised learning workflow on the mushrooms dataset with exploration and visualization.1167-Lab6-BSCS_A_7_ClassTask.ipynbUnsupervised learning work on the wine dataset with scaling and analysis setup.1167-Lab8-9-BSCS_A_ClassTask.ipynbANN work on Iris using TensorFlow/Keras, including hidden-layer activation comparisons.
fast_lab_1.ipynbSynthetic moons dataset work with augmentation, visualization, and model-focused experimentation.fast_lab_2.ipynbA more hands-on deep learning exercise with a customDeepNeuralNetworkimplementation built in NumPy, including forward pass, backpropagation, and training helpers.test.ipynbSmall scratch notebook.
The Lab10/ folder contains transformer-focused experiments:
Lab10/1167-Lab10-BSCS_A_ClassTask.ipynbText classification, summarization, translation, and image-to-text oriented tasks.Lab10/simple_emotion_pipeline.ipynbEmotion/sentiment classification with Hugging Face pipelines.Lab10/Transformers Hugging face.ipynbSummarization and translation pipeline experiments.Lab10/Text_Generation_with__GPT2.ipynbGPT-2 text generation workflow.
Ensemble Report/Ensemble learning notebooks, an exported HTML notebook, and PDF reports.ML_Lab1.pptx,ML_Lab2_3.pptx,ML_Lab4.pptx,ML_Lab_05.pptx,ML_Lab7.pptxCourse slide decks used alongside the labs.Lab 08-09 - Instructions.pdfInstructions for the later neural-network-related labs.Lab11/*.pdfPDF assets related to the final lab and offline PDF QA work.
These are the most application-oriented parts of the repository.
A basic Flask + SQLAlchemy to-do app with Jinja templates and SQLite persistence.
Features visible in the code:
- Create, edit, list, and delete tasks
- SQLite-backed storage via SQLAlchemy
- Template inheritance with Jinja
- Simple Tailwind-oriented template structure
Key files:
Flask/app.pyFlask/templates/instance/database.db
A Flask interface for training and evaluating simple ML models against either built-in datasets or uploaded CSV files.
Features visible in the code:
- Built-in datasets: Iris, Digits, Wine
- Models: Logistic Regression, KNN, SVM
- Standard train/test workflow with scaling
- Metrics: accuracy, precision, recall, F1-score
- Auto-generated bar chart of evaluation results
Key files:
Lab11/part1_flask/app.pyLab11/part1_flask/templates/index.htmlLab11/part1_flask/static/metrics.png
A Streamlit RAG prototype for asking questions over an uploaded PDF document.
Features visible in the code:
- PDF ingestion with
PyPDF2 - Text chunking with LangChain text splitters
- Embeddings with
sentence-transformers/all-MiniLM-L6-v2 - Vector search using FAISS
- Local answer generation through GPT4All
Important note:
- The code currently points to a local GGUF model path outside this repository, and
.gitignorealso excludesq4_0-orca-mini-3b.gguf. That means the app is not fully self-contained out of the box without supplying a local GPT4All model.
Key file:
Lab11/part2_RAG_StreamLit/RAG.py
A more ambitious Flask-based computer vision demo wrapping multiple YOLO11 tasks behind separate routes.
Tasks implemented:
- Object detection
- Instance segmentation
- Image classification
- Pose estimation
- Oriented bounding box detection
Features visible in the code:
- Individual Flask endpoints per task
- Separate service functions for each inference path
- A single HTML front end for uploading images and viewing structured results
- Pretrained YOLO11 weights stored in the repo under
models/
Key files:
Lab11/Lab11_HomeTask/yolo/app.pyLab11/Lab11_HomeTask/yolo/routes/yolo_routes.pyLab11/Lab11_HomeTask/yolo/services/yolo_service.pyLab11/Lab11_HomeTask/yolo/models/yolo_model.pyLab11/Lab11_HomeTask/yolo/templates/main.html
Playwright/PlaywrightNotes.ipynbBrowser automation notes separate from the ML material.Lab11/part1_flask.zip,Lab11/part2_RAG_StreamLit.zip,Lab11/Lab11_HomeTask/1167-lab11-hometask.zipArchived project bundles/submissions.
Based on pyproject.toml, the repository uses or references:
- Python 3.12
- Jupyter Notebook / IPython kernel
- NumPy, pandas, matplotlib, seaborn
- scikit-learn, imbalanced-learn, Optuna, Keras Tuner
- TensorFlow
- PyTorch, torchvision, torchaudio
- Hugging Face
transformers,sentencepiece,sacremoses - Diffusers
- Flask, Flask-SQLAlchemy, Streamlit
- PyPDF2, LangChain, sentence-transformers, FAISS, GPT4All
- Ultralytics YOLO
uvfor environment managementrufffor linting
This repo is configured as a Python project with uv.
uv syncIf you prefer working directly in notebooks:
uv run jupyter notebookFlask to-do app:
uv run python Flask/app.pyFlask ML evaluation app:
uv run python Lab11/part1_flask/app.pyStreamlit RAG app:
uv run streamlit run Lab11/part2_RAG_StreamLit/RAG.pyYOLO multi-task demo:
uv run python Lab11/Lab11_HomeTask/yolo/app.py- Some notebooks expect local datasets under
Datasets/, and that folder is ignored in.gitignore. - The RAG prototype depends on a locally available GPT4All model file that is not committed.
- A number of files in the repository are course artifacts, exports, or archives rather than polished reusable modules.
- There is a committed SQLite database under
instance/database.dbfor the Flask to-do example. - The repository currently reads best as a documented learning portfolio rather than a single install-and-run product.
If you want to review the work in sequence:
- Start with the top-level numbered lab notebooks for the course progression.
- Move to
fast_lab_1.ipynbandfast_lab_2.ipynbfor more implementation-heavy experiments. - Review
Lab10/for transformer and NLP work. - Review
Ensemble Report/for the report-oriented material. - Finish with the application-style work in
Flask/andLab11/.
If this repository is later split into smaller, presentation-ready projects, the strongest candidates are:
Lab11/Lab11_HomeTask/yolo/Best standalone demo in the repo. It has a clear product shape, multiple computer vision tasks, API-style routes, and a presentable UI.Lab11/part2_RAG_StreamLit/Strong portfolio topic because local-document RAG is easy to explain and relevant, though it needs cleanup around model paths and setup.Lab11/part1_flask/Good smaller project showing the bridge between machine learning and web deployment, especially if expanded with better dataset handling and result persistence.
This repository captures a broad machine learning learning journey: from data loading and preprocessing, through classical ML and unsupervised learning, into neural networks, NLP, RAG, and computer vision deployment demos. It is a useful archive of both coursework and practical experimentation, with the Lab 11 application projects standing out as the best material for standalone portfolio use.