Skip to content

pro-grammer-SD/sciwizard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ§™β€β™‚οΈ SciWizard

SciWizard Icon

SciWizard Screenshot


Features

Area What you get
Data CSV loading, table preview, data profiling, missing value handling
Preprocessing Label/one-hot encoding, column dropping, scaler info
Visualisation Histograms, scatter plots, correlation heatmaps, feature distributions, PCA 2D
Training 7 classification + 7 regression algorithms, hyperparameter control, CV scores
AutoML Automatic model sweep with sortable leaderboard
Evaluation Confusion matrix, ROC curve, cross-validation bar chart, metrics dashboard
Prediction Form-based single prediction, batch CSV prediction with export
Registry Persistent model save/load/delete with metadata
Experiments JSONL-backed run history with full metric tracking
Plugins Drop Python files into /plugins to add custom models and preprocessors

Installation

Requirements: Python 3.10+

# Clone
git clone https://github.com/pro-grammer-SD/sciwizard.git
cd sciwizard

# Create virtual environment
python -m venv .venv
source .venv/bin/activate      # Windows: .venv\Scripts\activate

# Install
pip install -e ".[dev]"

Usage

python -m sciwizard

Or use the installed entry point:

sciwizard

Basic workflow

  1. Data tab β€” load a CSV, select target column, handle missing values
  2. Preprocess tab β€” encode categoricals, drop irrelevant columns
  3. Visualize tab β€” explore distributions and correlations
  4. Train tab β€” pick algorithm, configure split, train
  5. Evaluate tab β€” inspect confusion matrix, ROC, CV scores
  6. Predict tab β€” enter values for single prediction or upload a batch CSV
  7. Registry tab β€” save and reload trained models
  8. Experiments tab β€” review all past runs

Writing a Plugin

Drop a .py file into the plugins/ directory:

# plugins/extra_trees.py
from sklearn.ensemble import ExtraTreesClassifier

def register(registry: dict) -> None:
    registry["models"]["Extra Trees"] = ExtraTreesClassifier(n_estimators=100)

SciWizard discovers it on next launch and adds it to the model selector.


Running Tests

pytest

Project Structure

sciwizard/
β”œβ”€β”€ sciwizard/
β”‚   β”œβ”€β”€ app.py                  # Bootstrap & main()
β”‚   β”œβ”€β”€ config.py               # Constants & paths
β”‚   β”œβ”€β”€ core/
β”‚   β”‚   β”œβ”€β”€ data_manager.py     # CSV loading, profiling, cleaning
β”‚   β”‚   β”œβ”€β”€ model_trainer.py    # Training, evaluation, AutoML
β”‚   β”‚   β”œβ”€β”€ model_registry.py   # Persistent model storage
β”‚   β”‚   β”œβ”€β”€ experiment_tracker.py
β”‚   β”‚   └── plugin_loader.py
β”‚   └── ui/
β”‚       β”œβ”€β”€ main_window.py      # Top-level window + sidebar
β”‚       β”œβ”€β”€ theme.py            # Dark stylesheet
β”‚       β”œβ”€β”€ workers.py          # QThread/QRunnable wrappers
β”‚       β”œβ”€β”€ panels/             # One file per application tab
β”‚       └── widgets/            # Shared UI components
β”œβ”€β”€ tests/
β”œβ”€β”€ docs/
β”œβ”€β”€ plugins/                    # Drop custom model plugins here
└── icon/
    └── icon.ico

Contributing

See CONTRIBUTING.md.

License

MIT β€” see LICENSE.

About

πŸ§™β€β™‚οΈ A professional machine learning GUI for scientists, developers & students β€” powered by PySide6 & scikit-learn. πŸ“Š Load data, preprocess, train, evaluate, and predict β€” all without writing code. ⚑ Includes AutoML, hyperparameter tuning, model registry, experiment tracking, and a plugin system.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors