Testing against known real-world popular combinations (1-2-3-4-5-6,
5-10-15-20-25-30) showed the sum-near-mean penalty scored them HIGHER
than spread-out combinations - the opposite of intended. Tight
sequential clusters produce both a strong pattern match AND an extreme
sum from the same underlying cause, so treating "extreme sum" as an
independent unpopularity signal double-counted in the wrong direction
for exactly the combinations it should penalize most.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Since draws are i.i.d., only expected value (jackpot-sharing avoidance)
is actually 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 and sums higher since humans favor "balanced-looking"
combinations despite every combination being equally likely.
Raises popularity's weight in the quality score from 20% to 50%, since
AI/pattern/recency signals carry no real predictive value and recency
("overdue" numbers) risks converging with other systematic players'
picks, undermining the EV goal. Superzahl selection now uses an EV
heuristic instead of chasing historical draw frequency, which is pure
noise for an independently drawn digit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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>
Data:
- Add missing draw 2026-05-16 (7 11 20 23 27 30 SZ:9) via GitHub archive
- Run retroactive learning for skipped 2026-01-07 draw
Generator improvements (ported from Eurojackpot):
- Add hard structural filters (sum 100-200, 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 Division-by-Zero edge case in set_frequency_prior
- Fix freq_alpha boundary and clip final adjusted value to [0,1]
- Prevent negative weights in random.choices (floor at 0.001)
- Use vectorized stack().value_counts() for frequency calculation
.gitignore:
- Exclude data/backups/, weekly tip CSVs, performance reports, data/data/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Added Lottoland API (https://media.lottoland.com/api/drawings/german6aus49)
for fetching the latest Lotto 6aus49 draw
- Changed strategy to combine both APIs:
1. Lottoland API for the most current draw
2. GitHub Lotto Archive for historical data
- Fixed default data path to use /Projekte/Lotto/data
- Updated AlleLottozahlen.csv with draw from 2026-01-31
This fixes the issue where the GitHub Lotto Archive was outdated
and missing recent draws. Lottoland API provides real-time results.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 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
- Now saves data to /Projekte/Lotto/data instead of iCloud
This ensures automatic updates save to the correct location.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Enhanced Telegram message format to show TOP 3 by Confidence AND Quality
- Added average statistics (Confidence & Quality) to notifications
- Generated new tips with updated data (3,090 draws, latest: Jan 10)
- Added run_update_and_learn.sh wrapper script
- Created com.lotto.update.plist for automated updates
- Updated AlleLottozahlen.csv with latest draws
Benefits:
- Better tip selection with dual metrics visibility
- Clearer understanding of tip performance
- More informed decision-making for users
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- 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
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Major improvements:
- Deep Learning integration with PyTorch LSTM (Bidirectional, 128→64 units)
- Hybrid predictor: 40% RandomForest + 60% Deep Learning
- LaunchAgent for automatic weekly tip generation (Tue/Fri 21:00)
- Health-Check system with auto-recovery and Telegram alerts
- 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)
- Apple Silicon MPS acceleration support
- Sequence learning with 20-draw history
- Early stopping and learning rate scheduling
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This project includes multiple AI/ML-based lottery number generators for
German Lotto 6aus49, including pattern analysis, weighted predictions,
and hybrid approaches. Features automated weekly tip generation,
performance tracking, and Telegram bot integration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>