CrunchDAO example packages for machine learning competitions
Project description
CrunchDAO Crunch Example
This package provides example utilities and base classes for CrunchDAO machine learning competitions.
Installation
pip install crunchdao-crunch-example
Usage
Iris Classification
The package provides iris classification utilities with a dual structure:
# Import base class from namespace package
from crunchdao.crunch_example.iris import IrisModelBase
import pandas as pd
class MyIrisModel(IrisModelBase):
def train(self, train_data: pd.DataFrame) -> None:
# Implement your training logic here
# train_data contains features and target labels
pass
def infer(self, dataframe: pd.DataFrame) -> pd.DataFrame:
# Implement your inference logic here
# dataframe contains features to predict on
predictions = [0, 1, 2] # Your model predictions
return pd.DataFrame({
'prediction': predictions
})
# Use your model
model = MyIrisModel()
# Training data with features and target
train_data = pd.DataFrame({
'sepal_length': [5.1, 4.9, 4.7],
'sepal_width': [3.5, 3.0, 3.2],
'petal_length': [1.4, 1.4, 1.3],
'petal_width': [0.2, 0.2, 0.2],
'species': [0, 0, 0] # 0=setosa, 1=versicolor, 2=virginica
})
model.train(train_data)
# Test data with just features
test_data = pd.DataFrame({
'sepal_length': [6.1, 5.9],
'sepal_width': [2.9, 3.0],
'petal_length': [4.7, 4.2],
'petal_width': [1.4, 1.5]
})
predictions = model.infer(test_data)
print(predictions)
Package Structure
The package provides a dual structure:
Namespace Package (for base classes)
crunchdao.crunch_example.iris- Namespace package containing IrisModelBase- Accessible via:
from crunchdao.crunch_example.iris import IrisModelBase
- Accessible via:
Direct Package (for examples and utilities)
crunchdao_crunch_example/- Main package with examples and utilitiesmodels/- Example model implementations (not importable packages)neural_network/- Multi-layer perceptron with sklearnrandom_forest/- Ensemble tree-based classifiersvm/- Support vector machine classifier
scripts/- Utility scripts for training and model management (not importable packages)
Model Examples
The package includes complete model implementations:
- Neural Network (
models/neural_network/) - Multi-layer perceptron with sklearn - Random Forest (
models/random_forest/) - Ensemble tree-based classifier - SVM (
models/svm/) - Support vector machine classifier
Each model includes:
- Pre-trained model files in
resources/ - Implementation code in
submissions/main.py - Dependencies in
submissions/requirements.txt
Utility Scripts
The scripts/ directory contains:
pretrain_models.py- Train all models on iris datasetpretrain_neural_network.py- Specific neural network trainingsync_models.py- Sync models with storage systemscleanup_docker.py- Docker environment cleanup
Development
Requirements
- Python 3.11+
- uv (for dependency management)
Setup
# Clone the repository
git clone https://github.com/crunchdao/coordinator-setup
cd coordinator-setup/examples/crunch_examples
# Install dependencies
uv sync
# Install in development mode
uv pip install -e .
Testing
uv run pytest
Building
# Build the package
uv build
# Upload to PyPI (requires authentication)
uv publish
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crunchdao_crunch_example-0.3.0.tar.gz.
File metadata
- Download URL: crunchdao_crunch_example-0.3.0.tar.gz
- Upload date:
- Size: 167.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
046bd9d77d164226168a8c8e5be8bcb9cc02fa95e801ab5613828af433703211
|
|
| MD5 |
eafb6d4bc2041d971af5e488eb8e9bd4
|
|
| BLAKE2b-256 |
04e558d22f26669ab2e19f8de2dc4f9b74483fec6ccc81043ecf9db3f19479f6
|
File details
Details for the file crunchdao_crunch_example-0.3.0-py3-none-any.whl.
File metadata
- Download URL: crunchdao_crunch_example-0.3.0-py3-none-any.whl
- Upload date:
- Size: 177.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fd9a26294446e75efa78d639f1ca3bf135597de60774cea1b8d07ef63f194da
|
|
| MD5 |
523503a23e98cfa11bb90b5fc7869c4b
|
|
| BLAKE2b-256 |
997401f4827587ea325846eff9dc09398574bcfbb93894781eaf8df15fa2107a
|