-
Notifications
You must be signed in to change notification settings - Fork 8
Description
🚀 Feature Proposal
Design an Interface for ML Experiments
Motivation
Currently, HypEx lacks a structured interface for ML experiments. Given that ML-based experiments require specialized handling, defining a clear architectural interface will ensure consistency, modularity, and ease of integration with existing ML workflows. This will also enable users to seamlessly extend and customize ML experiments while maintaining compatibility with HypEx’s core framework.
Feature Description
- Design a base MLExperiment class that defines the core interface for ML-based experiments.
- Define key abstract methods such as:
fit(self, data, target): Train the model.predict(self, data): Generate predictions.evaluate(self, predictions, ground_truth): Assess model performance.save(self, path): Save the trained model.load(cls, path): Load a pre-trained model.
- Implement a flexible inheritance structure so that different ML methods (e.g., supervised learning, reinforcement learning) can extend the base class.
- Ensure seamless integration with existing HypEx experiment structures.
- Provide a reference implementation of at least one ML experiment type using the new interface.
Potential Impacts
- Improved modularity and maintainability of ML-based experiments.
- Easier extension and customization of ML workflows.
- Better consistency across different ML experiment implementations.
Alternatives
- Keep ML experiment implementations ad-hoc without a unified interface (less structured, harder to maintain).
- Use existing general-purpose ML frameworks, though they may not be tailored for HypEx needs.
Additional Context
- Ensure compatibility with libraries like scikit-learn, PyTorch, LightGBM, and XGBoost.
- Follow best practices in object-oriented design to create an extendable and reusable interface.
- Provide comprehensive documentation and examples of usage.
Checklist
- Design
MLExperimentbase class with core interface methods. - Implement a sample ML experiment using the interface.
- Ensure integration with existing HypEx experiment structures.
- Add unit tests covering interface functionality.
- Update documentation with usage guidelines and examples.
- Review and refine design before merging.
Sub-issues
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request