LIM-RPS and DELL Evaluation Guide
The `evaluate_with_limrps.py` script: 1. Loads sensor data from CSV files 2. Processes data through LIM-RPS (Lipschitz-constrained Implicit-Map for Recursive Proximal Synthesis) 3. Optionally processes through DELL (Dual-Equilibrium Latent Learning) 4. Generates comprehensive visualizations
Full Public Reader
LIM-RPS and DELL Evaluation Guide
This guide explains how to evaluate sensor data using the LIM-RPS and DELL algorithms with visualizations.
Overview
The `evaluate_with_limrps.py` script:
1. Loads sensor data from CSV files
2. Processes data through LIM-RPS (Lipschitz-constrained Implicit-Map for Recursive Proximal Synthesis)
3. Optionally processes through DELL (Dual-Equilibrium Latent Learning)
4. Generates comprehensive visualizations
Requirements
pip install torch numpy scipy matplotlibOr use the full requirements:
pip install -r requirements.txtUsage
Basic Evaluation with Visualizations
python3 evals/evaluate_with_limrps.py \
--sensor-dir "/path/to/sensor/data" \
--plots-dir evals/plotsWith LIM-RPS Processing
python3 evals/evaluate_with_limrps.py \
--sensor-dir "/path/to/sensor/data" \
--use-limrps \
--plots-dir evals/plotsWith DELL Processing
python3 evals/evaluate_with_limrps.py \
--sensor-dir "/path/to/sensor/data" \
--use-limrps \
--use-dell \
--plots-dir evals/plotsEvaluate Specific Session
python3 evals/evaluate_with_limrps.py \
--sensor-dir "/path/to/sensor/data" \
--use-limrps \
--session "Left Pocket" \
--plots-dir evals/plotsOutput
Visualizations
The script generates plots in the specified `--plots-dir` directory (default: `evals/plots/`):
1. Accelerometer X, Y, Z over time - Raw accelerometer data
2. Accelerometer Magnitude - L2 norm of acceleration vector
3. Motion Energy - Computed motion energy over time
4. Gyroscope Data - Angular velocity (if available)
5. LIM-RPS Convergence - Residual convergence plot (if LIM-RPS is used)
6. 3D Accelerometer Trajectory - 3D visualization of acceleration space
Each plot is saved as `{session_name}_analysis.png`.
Example Output Structure
evals/
├── plots/
│ ├── Left Pocket_2025-11-02_02-10-10-..._analysis.png
│ ├── Right Pocket_2025-11-02_02-10-10-..._analysis.png
│ └── Single_442_W_13th_St-2025-11-02_04-37-38_analysis.png
└── limrps_evaluation.mdWhat LIM-RPS Does
LIM-RPS performs multi-modal sensor fusion by:
1. Encoding: Converts raw sensor data (accelerometer, gyroscope, energy) into latent representations
2. Fusion: Solves a fixed-point equation to find the equilibrium state:
z* = prox_G(z* - γ B_θ(z*, e))where:
- `B_θ` is a 1-Lipschitz cross-modal operator
- `prox_G` is a proximal projection
- `γ` is the step size
3. Convergence: Iteratively refines the fused representation until convergence
Key Metrics
- Residuals: Measure of convergence at each iteration
- Fused Latents: Combined representation of all sensor modalities
- Convergence Rate: How quickly the algorithm converges
What DELL Does
DELL (Dual-Equilibrium Latent Learning) extends LIM-RPS with:
1. Fast Equilibrium: Frame-rate processing (60-100 Hz) for micro-adjustments
2. Slow Equilibrium: Beat-rate processing (2-4 Hz) for macro-planning
3. Coupling: Energy function `φ(x, y)` keeps fast and slow equilibria aligned
Understanding the Graphs
### Accelerometer X, Y, Z
- Shows raw acceleration in each axis
- Useful for identifying motion patterns
- Z-axis typically shows vertical motion
### Accelerometer Magnitude
- L2 norm: `√(x² + y² + z²)`
- Represents overall motion intensity
- Useful for detecting activity levels
### Motion Energy
- Computed from accelerometer features
- Normalized energy metric
- Higher values indicate more motion
### LIM-RPS Convergence
- Shows residual values at each iteration
- Should decrease (converge) over iterations
- Log scale shows convergence rate
### 3D Trajectory
- Visualizes acceleration in 3D space
- Shows motion patterns and orientations
- Useful for understanding movement geometry
Troubleshooting
### "torch not available"
Install PyTorch:
pip install torch### "matplotlib not available"
Install matplotlib:
pip install matplotlib### No convergence in LIM-RPS
- Check that sensor data is valid
- Try adjusting LIM-RPS parameters (step_size, max_iters)
- Ensure data is properly normalized
### Missing visualizations
- Check that matplotlib is installed
- Verify output directory is writable
- Check for errors in the console output
Advanced Usage
Custom LIM-RPS Configuration
Edit the script to customize LIM-RPS parameters:
config = LIMRPSConfig(
max_iters=6, # More iterations
step_size=0.3, # Smaller step size
hidden_dim=128, # Larger hidden dimension
use_metric=True, # Enable adaptive metric
use_step_field=True # Enable adaptive step field
)Processing Multiple Sessions
The script automatically processes all sessions found in the sensor directory. Use `--session` to filter specific sessions.
Integration with Main Evaluation
This script complements `evaluate_sensor_data.py`:
- `evaluate_sensor_data.py`: Basic statistics and metrics
- `evaluate_with_limrps.py`: Advanced fusion and visualizations
Use both for comprehensive analysis!
Promotion Decision
Attach run IDs, datasets, metrics, and reproduction commands.
Source Anchor
Comp-Core/core/runtime/cc-core/evals/LIMRPS_EVALUATION.md
Detected Structure
Method · Evaluation · Code Anchors