Files
foxhunt/DIAGNOSTIC_DATA_EXTRACTION.sh
jgrusewski 00ef9e2866 Wave 15: Complete FactoredAction migration to 45-action system
Major Changes:
- Migrated from 3-action TradingAction to 45-action FactoredAction
- 45 actions: 5 exposure × 3 order types × 3 urgency levels
- Absolute exposure model (target positions -1.0 to +1.0)
- Transaction cost differentiation (Market 0.15%, LimitMaker 0.05%, IoC 0.10%)
- Fixed action diversity threshold (1.11% → 0.5% for 45-action space)

Bug Fixes:
- Bug #15: Incomplete FactoredAction integration (code existed but unused)
- Bug #16: Runtime crash in action diversity checking (hardcoded 3-action match)

Code Changes (13 files, ~464 lines):
- ml/src/dqn/action_space.rs: Core FactoredAction + 4 helper methods
- ml/src/trainers/dqn.rs: Action diversity refactored (3→45 dynamic)
- ml/src/dqn/reward.rs: calculate_reward() signature updated
- ml/src/dqn/portfolio_tracker.rs: execute_action() absolute exposure
- ml/src/dqn/dqn.rs: WorkingDQN action selection migrated
- ml/tests/*.rs: 9 test files updated with FactoredAction assertions

Test Results:
- 1-epoch smoke test: 100% action diversity (45/45 actions, 80.2s)
- 10-epoch production: 87.8% readiness (79/90 scorecard, 14.0 min)
- Loss convergence: 96.9% reduction (119K → 3.6K)
- Action diversity: 100% → 44% (healthy specialization)
- Checkpoint reliability: 12/12 files saved (100%)
- DQN tests: 195/195 passing (100%)
- ML baseline: 1,514/1,515 passing (99.93%)

Production Status:  CERTIFIED (87.8% readiness)
Go/No-Go:  GO FOR 100-EPOCH PRODUCTION TRAINING

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 23:27:02 +01:00

27 lines
983 B
Bash
Executable File

#!/bin/bash
# Extract diagnostic metrics from gamma 0.90 test logs
LOG_FILE="/tmp/ml_training/gamma_0.90_diagnostic.log"
OUTPUT_DIR="/home/jgrusewski/Work/foxhunt/diagnostic_data"
mkdir -p "$OUTPUT_DIR"
echo "Extracting Q-value progression..."
grep "Step [0-9]* Q-values:" "$LOG_FILE" | \
awk -F'Step | Q-values: BUY=|, SELL=|, HOLD=' '{print $2,$3,$4,$5}' | \
head -100 > "$OUTPUT_DIR/q_value_progression_gamma_0.90.txt"
echo "Extracting gradient metrics..."
grep "grad_norm=" "$LOG_FILE" | \
awk -F'grad_norm=|, train_steps=' '{print $1,$2}' | \
head -50 > "$OUTPUT_DIR/gradient_progression_gamma_0.90.txt"
echo "Extracting epoch-level metrics..."
grep "Epoch [0-9]*/10: train_loss=" "$LOG_FILE" > "$OUTPUT_DIR/epoch_metrics_gamma_0.90.txt"
echo "Extracting gradient collapse occurrences..."
grep "GRADIENT COLLAPSE" "$LOG_FILE" | wc -l > "$OUTPUT_DIR/gradient_collapse_count_gamma_0.90.txt"
echo "✅ Diagnostic data extracted to: $OUTPUT_DIR"
ls -lh "$OUTPUT_DIR"