GPy/backlog/features/2025-08-15_matlab-comparison-framework.md

76 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: "matlab-comparison-framework"
title: "Create MATLAB comparison framework for LFM kernel validation"
status: "In Progress"
priority: "High"
created: "2025-08-15"
last_updated: "2025-08-15"
owner: "Neil Lawrence"
github_issue: ""
dependencies: "lfm-kernel-code-review"
tags:
- lfm
- kernel
- validation
- matlab
- comparison
---
# Create MATLAB comparison framework for LFM kernel validation
## Description
Create a comprehensive comparison framework to validate our GPy LFM kernel implementation against the MATLAB reference implementation in GPmat.
## Background
- We have analyzed the complete MATLAB implementation (SIM, DISIM kernels)
- Need to validate our GPy implementation against the reference
- Comparison framework will ensure mathematical correctness and numerical accuracy
- Will help catch implementation errors and validate parameter handling
## Implementation Tasks
- [x] Create MATLAB comparison script (`scripts/compare_with_matlab.py`)
- [ ] Test MATLAB script with existing GPmat installation
- [ ] Create standard test cases for SIM and DISIM kernels
- [ ] Implement GPy computation integration in comparison script
- [ ] Add parameter validation and constraint testing
- [ ] Create visualization tools for comparison results
- [ ] Add cross-kernel computation validation
- [ ] Document comparison methodology and tolerance standards
## Test Cases to Implement
- [ ] Basic SIM kernel with standard parameters
- [ ] SIM kernel with fast decay and no delay
- [ ] Basic DISIM kernel with hierarchical parameters
- [ ] Edge cases (zero delay, extreme decay values)
- [ ] Multi-output scenarios
- [ ] Cross-kernel computations (SIM × RBF, DISIM × SIM)
## Acceptance Criteria
- [ ] MATLAB comparison script runs successfully
- [ ] Standard test cases produce consistent results
- [ ] Comparison framework can detect implementation errors
- [ ] Tolerance standards defined and documented
- [ ] Results visualization and reporting implemented
- [ ] Framework integrated into development workflow
## Implementation Notes
- Use scipy.io for loading MATLAB .mat files
- Support both MATLAB and Octave as reference implementations
- Implement robust error handling for missing dependencies
- Create standardized test data sets for reproducible comparisons
- Consider numerical precision differences between platforms
## Related
- Backlog: lfm-kernel-code-review
- Backlog: implement-lfm-kernel-core
- MATLAB Implementation: ~/lawrennd/GPmat/matlab/
## Progress Updates
### 2025-08-15
Created initial MATLAB comparison framework:
- Implemented `MATLABComparison` class with automatic MATLAB/Octave detection
- Created test case generation for SIM and DISIM kernels
- Added result comparison with tolerance checking
- Framework ready for integration with GPy implementation
- Script can generate MATLAB code dynamically for different test cases