18 Commits
Author SHA1 Message Date
cbazzaandClaude Sonnet 5 c39babade4 Update draws, retrain models and generate tips through Aug 17
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 18:05:55 +02:00
cbazzaandClaude Sonnet 5 5cc34d95b9 Update draws, retrain models and log tip generation run
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 19:08:52 +02:00
cbazzaandClaude Sonnet 5 ab42a13048 Rewrite README to match the actual active system
The old README documented almost exclusively the legacy scripts
removed in the previous commit and never mentioned the real
automation (auto_update_and_learn.py, weekly_tip_generator.py,
launchd) at all. Rewritten to describe what's actually running: the
4-strategy generator, the EV-optimized quality score, the launchd
schedule (not crontab - setup_cron.sh is stale), and the real data
update chain. Links to the new ARCHITECTURE.md for details.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 18:59:38 +02:00
cbazzaandClaude Sonnet 5 0285a1c5fa Ground popularity/EV score in empirical player-choice biases
Ports the fix already applied to the sibling Lotto 6aus49 project.
Since draws are i.i.d., only expected value (jackpot-sharing
avoidance) is improvable, not hit probability. Replaces the ad-hoc
"lucky numbers" list with empirically-documented picks, adds general
arithmetic-progression detection (not just +1 consecutive pairs), and
scores extreme odd/even splits higher (adjusted for 5 main numbers:
distance from the 2.5 midpoint, not 3 as in the 6-number Lotto case).
Deliberately omits a sum-near-mean component - testing against known
overplayed combinations (1-2-3-4-5, 5-10-15-20-25) during the Lotto
port showed it inverted the ranking for tightly clustered sequences.

Raises popularity's weight in the quality score from 20% to 45%
(main/euro/pattern/recency reduced accordingly), since those signals
carry no real predictive value for hit probability.

Also fixes _get_smart_euro_numbers(), which previously returned the
literal same Euro-number pair for tips #1-3 every single run (top-2
AI predictions, no randomization) and had zero EV consideration. Now
weighted-random across all 12 candidates with lucky numbers (3, 7)
downweighted - deliberately more conservative than the main-number
heuristic since 1-12 overlaps with calendar months and has no clear
birthday-range split to exploit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 18:57:55 +02:00
cbazzaandClaude Sonnet 5 f23922e05e Remove unreferenced legacy generators, updater, and analysis scripts
The graphify code-graph pass confirmed nothing in the active pipeline
(scripts/automation/, shell entrypoints) imports or calls any of
these - only scripts/generators/ultimate_ai_ml_eurojackpot_generator.py
is wired into automation. Removes:

- ultimate_ai_ml_eurojackpot_generator_v2.1_backup.py, a verbatim
  duplicate of the active generator's classes (UltimateAIMLEurojackpot-
  Generator, EurojackpotAIMLEngine, PatternEngine, HybridOptimizer)
- optimized_eurojackpot_generator.py, a third standalone generator
  documented in README but never imported
- update_historical_data.py, a second data updater never imported
- 12 standalone analysis/utility scripts (bereichsanalyse, positions-
  analyse, NMMHH generators, processors, etc.) with no automation ties

History is preserved in git if anything here turns out to still be
wanted. README still documents most of these - follow-up needed there.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 18:53:39 +02:00
cbazzaandClaude Sonnet 5 5703e6a12c Add ARCHITECTURE.md documenting data flow and active vs. legacy code
Built with a graphify code-graph pass, mirroring the audit done on the
sibling Lotto 6aus49 project. Documents the ingestion -> training ->
tip generation -> notification flow and several findings:

- The data-fetch fallback chain (lottoAPI/Lottoland/Sazka.cz + web
  scraper) is already more robust here than Lotto's was before its fix.
- UltimateAIMLEurojackpotGenerator (and its EurojackpotAIMLEngine/
  PatternEngine/HybridOptimizer) is duplicated verbatim in an unused
  ultimate_ai_ml_eurojackpot_generator_v2.1_backup.py.
- A third standalone generator (optimized_eurojackpot_generator.py)
  and a second updater (update_historical_data.py) exist but aren't
  wired into automation, alongside ~12 unreferenced analysis scripts.
- The popularity/quality score still uses the pre-fix Lotto approach
  (ad-hoc lucky-number list, no arithmetic-progression detection, no
  odd/even split heuristic, popularity only 20% of quality) and Euro
  number selection has no EV consideration at all - a follow-up to
  port the Lotto fix has not been done yet.

graphify-out/ itself is gitignored as a regenerable build artifact.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-10 18:50:02 +02:00
cbazzaandClaude Sonnet 4.6 f8fbe265c0 Refactor: 4 echte Strategien + cross-strategy Quality Score (Eurojackpot)
Strategien ersetzt:
- PURE-AI → BALANCED-SPREAD: erzwingt L≥1 M≥1 H≥1, max. 1 Consecutive Pair
- PURE-PATTERN → HIGH-EV: 2 Zahlen >31, max. 1 Lucky Number, soft Consecutive-Penalty
- ENSEMBLE → SOFT-CONTRARIAN: Recency-Boost (letzte 30 Ziehungen), Zone-Balance
- HYBRID-OPT: unverändert

Quality Score jetzt strategieübergreifend (6 Perspektiven):
Main-AI×0.25 + Euro×0.15 + Pattern×0.15 + Diversity×0.10 + Popularity×0.20 + Recency×0.15

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-04 16:59:53 +02:00
cbazzaandClaude Sonnet 4.6 7ba19540b5 Update draws, retrain models and generate tips for Jun 12-23 draws
- Added 2026-06-12, 06-16, 06-19, 06-23 draws (963 total)
- Learning cycles completed via automated LaunchAgent runs
- Retrained RF + LSTM models on updated dataset
- Generated fresh tips: weekly_tips_20260626_141210.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 14:13:53 +02:00
cbazzaandClaude Sonnet 4.6 ea354e3058 Add popularity score for EV-optimized number selection
Adds _calculate_popularity_score() which favors number combinations
unlikely to be picked by other players (numbers > 31, no consecutive
sequences, avoiding common "lucky numbers"). This doesn't improve hit
probability (lottery draws are i.i.d. random) but increases expected
value by reducing the chance of sharing a jackpot.

- New 20% weight in quality score
- New Popularity_Score column in tip CSV export

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 13:33:18 +02:00
cbazzaandClaude Sonnet 4.6 400f003aaf Update draws, retrain models and generate tips for Jun 5 + Jun 9 draws
- Added 2026-06-05 (via web scraper fallback) and 2026-06-09 draws (959 total)
- Retroactive learning for Jun 5, normal cycle for Jun 9 (46 total cycles)
- Retrained RF + LSTM models on updated dataset
- Generated fresh tips: weekly_tips_20260610_123037.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 12:32:02 +02:00
cbazzaandClaude Sonnet 4.6 379ac62a0a Update draws, retrain models and generate tips for Jun 2 draw
- Added 2026-06-02 draw to AlleEurojackpotzahlen.csv (957 total)
- Learning cycle for Jun 2 completed (45 total cycles)
- Retrained RF + LSTM models on updated dataset
- Generated fresh tips: weekly_tips_20260605_135452.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 13:55:53 +02:00
cbazzaandClaude Sonnet 4.6 b5a470ecce Update draws, retrain models and generate tips for May 22+26 draws
- Added missing 2026-05-22 and 2026-05-26 draws to AlleEurojackpotzahlen.csv
- Retroactive learning applied for both new draws (42 total cycles)
- Retrained RF and LSTM models on 955 draws
- Generated fresh tips: weekly_tips_20260528_091341.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 09:14:24 +02:00
cbazzaandClaude Sonnet 4.6 4fc488c668 Improve generator quality and fix data gaps (Apr-May 2026)
Data:
- Add 12 missing draws (2026-01-09, 2026-04-03 to 2026-05-15)
- Retrain LSTM and RF models on complete 952-draw dataset
- Run retroactive learning for all 12 skipped draws

Automation:
- Add eurojackpot-zahlen.eu web scraper as fallback when APIs fail
- Fixes recurring gap problem caused by Sazka detail-endpoint change

Generator improvements:
- Add hard structural filters (sum 95-165, min 1 even + 1 odd per tip)
- Add long-term frequency prior as learner dampener (alpha=0.2)
- Fix ENSEMBLE strategy generating duplicate tips (greedy → weighted random)
- Fix non-vectorized frequency calculation (stack().value_counts())
- Fix Division-by-Zero edge case in set_frequency_prior
- Fix potential KeyError on euro_ai_score in structural filter loop

.gitignore:
- Exclude data/backups/, weekly tip CSVs, performance reports

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 10:35:57 +02:00
cbazzaandClaude Sonnet 4.5 98a74ff2a7 Fix data paths in update automation
- Fixed default data-dir in auto_update_and_learn.py (was pointing to old iCloud path)
- Updated run_update_and_learn.sh to explicitly pass correct data-dir
- Added missing Eurojackpot draw from 2026-01-13 (2-16-27-33-47 + 6-12)
- Now saves data to /Projekte/Eurojackpot/data instead of iCloud

This fixes the issue where updates ran successfully but saved to the wrong location.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-14 11:55:40 +01:00
cbazzaandClaude Sonnet 4.5 ca003e44b7 Improve Telegram notifications and fix data paths
- Enhanced Telegram message format to show TOP 3 by Confidence AND Quality
- Added average statistics (Confidence & Quality) to notifications
- Fixed hardcoded iCloud path in generator (now uses --data-dir parameter)
- Updated AlleEurojackpotzahlen.csv with latest draw (Jan 9)
- Added run_update_and_learn.sh wrapper script
- Created com.eurojackpot.update.plist for automated updates

Benefits:
- Better tip selection with dual metrics visibility
- Generator now works with correct project paths
- More robust automation setup

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-14 10:48:15 +01:00
cbazzaandClaude Sonnet 4.5 6f7276276d Update automation configuration and add weekly tips
- Update plist to use new project path structure
- Simplify plist by removing comments
- Add run_tip_generator.sh script for easier execution
- Update data directory path in weekly_tip_generator.py
- Add generated weekly tips from 2026-01-08
- Update generation history with latest run

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-08 18:34:24 +01:00
cbazzaandClaude Sonnet 4.5 9049a66c1a Add Deep Learning (LSTM) + Quick Wins automation features
Major improvements:
- Deep Learning integration with PyTorch LSTM (dual models: main 1-50 + euro 1-12)
- Hybrid predictor: 40% RandomForest + 60% Deep Learning
- LaunchAgent for automatic weekly tip generation (Mon/Thu 21:00)
- Health-Check system with auto-recovery and Telegram alerts
- Fixed health checks for Eurojackpot-specific paths and file names
- Model caching and intelligent retraining logic
- Updated CSV data and generated tips
- Performance reports for recent draws

Technical details:
- PyTorch used instead of TensorFlow (Python 3.14 compatibility)
- Separate LSTM models for main numbers (1-50) and euro numbers (1-12)
- Apple Silicon MPS acceleration support
- Sequence learning with 20-draw history
- Health-check adapted for eurojackpot_ml_models/ and learning_log.json

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 09:22:36 +01:00
cbazzaandClaude Sonnet 4.5 70e0638dee Initial commit: Eurojackpot analysis and prediction system
This repository contains a comprehensive Eurojackpot lottery analysis and prediction system including:
- Historical data analysis and processing
- ML-based prediction models
- Automated weekly tip generation
- Position and range analysis tools
- Notification system for results

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 15:53:01 +01:00