Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Particle Coordinate Prediction in RSD Sensors

Multi-Output Regression Task — Politecnico di Torino

Overview

The aim of this project was to build a multi-output regression pipeline to predict the coordinates (x, y) indicating where a particle of interest passed, based on data collected from signals in an RSD sensor (Resistive Silicon Detector).

A variety of preprocessing techniques, dimensionality reduction methods, and ML models were tested. A Random Forest Regressor achieved the best score, outperforming the competition baseline.

Best result: Euclidean Distance = 5.417 (baseline: 6.629)

Project Structure

Particles_RSD_Sensors_RegressionTask/
├── data/
│   ├── raw/                  ← development.csv, evaluation.csv (not included)
|
├── models/                   ← saved trained model (.pkl, generated on run)
├── notebooks/                ← EDA, experiments, model comparison
├── outputs/                  ← predictions CSV and hexbin plot (generated on run)
├── reports/                  ← full project report (PDF)
├── src/
│   ├── __init__.py
│   ├── data_loader.py        ← loading and cleaning
│   ├── preprocessor.py       ← feature selection and scaling
│   ├── trainer.py            ← model training and evaluation
│   └── predictor.py          ← inference and output generation
├── main.py                   ← full pipeline entry point
└── requirements.txt

Note: data/raw/, models/, and outputs/ are not included in the repository due to file size from the actual training. Add your own development.csv and evaluation.csv to data/raw/ before running (find here: https://drive.google.com/drive/folders/1O8rqMLWaUhkS8Cn6uicfMAGA1DME1JPH?usp=sharing). Models and outputs are populated automatically by main.py.

Workflow

Base experiments, EDA, and model comparisons are documented in notebooks/Report_ParticlesinRSDSensors.ipynb. This includes all tested configurations: linear models (Linear Regression, Lasso, Ridge), PCA experiments, Decision Tree, and Random Forest variants.

The final best model pipeline is implemented as a clean, reproducible Python package in src/ and runs end-to-end via main.py.

How to Run

# 1. Clone the repo
git clone https://github.com/siinvictus/RegressionTask_ParticlesinRSDSensors.git
cd Particles_RSD_Sensors_RegressionTask

# 2. Add your data
# Place development.csv and evaluation.csv in data/raw/

# 3. Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate

# 4. Install dependencies
pip install -r requirements.txt

# 5. Run the pipeline
python main.py

Output files will be saved to outputs/. Trained model will be saved to models/.

Results

Model Features Euclidean Distance
Linear Regression 90 17.352
Linear Regression 60 18.157
Linear + PCA (30 components) 30 176.953
Decision Tree 90 8.370
Random Forest 90 5.585
Random Forest (top 38 features, 150 estimators) 38 5.417

Tech Stack

Python, Pandas, NumPy, Scikit-learn, Matplotlib, Seaborn

Authors

Silva Bashllari & Baharak Qaderi — Politecnico di Torino

License

Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

About

This is a multi-output regression task with a dataset composed of information about particles moving in an RSD sensor. The best score was obtained through a Random Forest.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.