Commit Graph
24 Commits
Author SHA1 Message Date
cbazzaandClaude Sonnet 5 83e5cae832 Log tip generation run for the Aug 8 draw
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-07 11:24:52 +02:00
cbazzaandClaude Sonnet 5 a45092b162 Wire the Lottoland fallback into the automated update workflow
AutoUpdateAndLearn.update_data() called LottoAPIUpdater with
api_name='github', which skipped the already-implemented Lottoland ->
GitHub -> lottoAPI fallback chain entirely. The GitHub archive alone
has repeatedly lagged 1-6 days behind actual draws (most recently the
Aug 5 draw, still missing as of Aug 7), causing tips to be generated
and models to be retrained on stale data. Switching to api_name='all'
tries Lottoland first, which has consistently had same-day results in
testing, with GitHub still covering full history/fallback.

Also includes the Aug 5 draw pulled in via this fix and the resulting
model retrain (data update was previously interrupted by a truncated
pipe during manual testing, this completes it).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-07 10:55:17 +02:00
cbazzaandClaude Sonnet 5 79c4c0d4b3 Log tip generation run for the Aug 4 draw
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 18:17:49 +02:00
cbazzaandClaude Sonnet 5 6630c588a7 Remove unreferenced legacy generator scripts and stale reports
The graphify code-graph pass confirmed nothing in the active pipeline
(scripts/, README, shell entrypoints) imports or calls these - only
scripts/generators/ultimate_ai_ml_hybrid_generator.py is wired into
automation. Also drops 4 orphaned performance-report JSON files from
the same abandoned generation (Sep 2025). History is preserved in git
if anything here turns out to still be wanted.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 18:04:27 +02:00
cbazzaandClaude Sonnet 5 3fcc1fc210 Add ARCHITECTURE.md documenting data flow and active vs. legacy code
Built with a graphify code-graph pass to identify the real dependency
structure. Documents the ingestion -> training -> tip generation ->
notification flow, the EV/quality-score rationale, and several
non-obvious facts surfaced by this session's debugging: automation
runs on launchd not crontab (the crontab comments are stale), the
Lottoland/lottoAPI fallback exists but isn't wired into the update
job, and the repo-root generator scripts are legacy/unused - only
scripts/generators/ultimate_ai_ml_hybrid_generator.py is live.

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

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 18:00:37 +02:00
cbazzaandClaude Sonnet 5 e05f1f12ba Fix popularity score: drop sum-extremity, it inverted the ranking
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>
2026-08-04 17:41:19 +02:00
cbazzaandClaude Sonnet 5 8c2089d734 Ground popularity/EV score in empirical player-choice biases
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>
2026-08-04 17:36:06 +02:00
cbazzaandClaude Sonnet 5 6c1139c909 Update draws, retrain models and generate tips for Jul 29 + Aug 1 draws
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 17:35:15 +02:00
cbazzaandClaude Sonnet 4.6 2f9358c80f Refactor: 4 echte Strategien + cross-strategy Quality Score (Lotto)
Strategien ersetzt:
- PURE-AI → BALANCED-SPREAD: erzwingt N≥1 M≥1 H≥1, max. 1 Consecutive Pair, AI-gewichtet
- PURE-PATTERN → HIGH-EV: 2-3 Zahlen >31, max. 1 Lucky Number, soft Consecutive-Penalty
- ENSEMBLE → SOFT-CONTRARIAN: Recency-Boost (letzte 30 Ziehungen), Zone-Balance
- HYBRID-OPT: unverändert (bester Baseline)

Quality Score jetzt strategieübergreifend (5 Perspektiven):
AI×0.30 + Pattern×0.20 + Diversity×0.15 + Popularity×0.20 + Recency×0.15

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-04 16:59:44 +02:00
cbazzaandClaude Sonnet 4.6 bda3f5dbb8 Update draws, retrain models and generate tips for Jun 13-24 draws
- Added 2026-06-13, 06-17, 06-20, 06-24 draws (3137 total)
- Learning cycles completed via automated LaunchAgent runs
- Retrained RF + LSTM models on updated dataset
- Generated fresh tips: weekly_lotto_tips_20260626_141135.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 14:14:08 +02:00
cbazzaandClaude Sonnet 4.6 e3a022b000 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:34:43 +02:00
cbazzaandClaude Sonnet 4.6 23498767bf Update draws, retrain models and generate tips for Jun 6 draw
- Added 2026-06-06 draw to AlleLottozahlen.csv (3132 total)
- Learning cycle for Jun 6 completed (45 total cycles)
- Retrained RF + LSTM models on updated dataset
- Generated fresh tips: weekly_lotto_tips_20260610_123055.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 12:32:37 +02:00
cbazzaandClaude Sonnet 4.6 749342681f Update draws, retrain models and generate tips for May 30 + Jun 3 draws
- Added 2026-05-30 and 2026-06-03 draws to AlleLottozahlen.csv (3131 total)
- Retroactive learning for May 30, normal cycle for Jun 3 (44 total cycles)
- Retrained RF + LSTM models on updated dataset
- Generated fresh tips: weekly_lotto_tips_20260605_135532.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 13:56:22 +02:00
cbazzaandClaude Sonnet 4.6 3753e8fe34 Update draws, retrain models and generate tips for May 20-27 draws
- Added 3 missing draws (2026-05-20, 2026-05-24, 2026-05-27) to AlleLottozahlen.csv
- Retrained RF and LSTM models on 3,129 draws (42 learning cycles)
- Generated fresh tips: weekly_lotto_tips_20260528_091404.csv

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 09:14:54 +02:00
cbazzaandClaude Sonnet 4.6 1a5d281d73 Update models and learning state after May 16 draw
- Run learning for 2026-05-16 draw (7 11 20 23 27 30 SZ:9)
- Retrain LSTM on updated 3126-draw dataset
- Update generation history with new tips

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 15:03:42 +02:00
cbazzaandClaude Sonnet 4.6 31cfd914c5 Improve generator quality and sync data (May 2026)
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>
2026-05-19 13:34:24 +02:00
cbazzaandClaude Opus 4.5 49c8bffb87 Remove duplicate data/data/ backup folder
Cleanup: Old backup files were incorrectly stored in data/data/backups/
instead of data/backups/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 09:56:30 +01:00
cbazzaandClaude Opus 4.5 e739226cf1 Update ML models and add generated tips (Jan-Feb 2026)
- Updated LSTM and ensemble models with latest training data
- Added weekly tips from January 9 to February 4, 2026
- Updated generation history and learning state
- Added performance reports

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 09:56:10 +01:00
cbazzaandClaude Opus 4.5 7e24dad849 Add Lottoland API to Lotto update script
- 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>
2026-02-04 09:47:39 +01:00
cbazzaandClaude Sonnet 4.5 fcafa8b8c0 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
- 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>
2026-01-14 11:56:15 +01:00
cbazzaandClaude Sonnet 4.5 9d2e4dfbc9 Improve Telegram notifications and update automation
- 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>
2026-01-14 10:47:27 +01:00
cbazzaandClaude Sonnet 4.5 42a00d3fc4 Update automation configuration and paths
- 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>
2026-01-08 18:33:41 +01:00
cbazzaandClaude Sonnet 4.5 428403557e Add Deep Learning (LSTM) + Quick Wins automation features
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>
2026-01-07 09:20:49 +01:00
cbazzaandClaude Sonnet 4.5 f6106b8333 Initial commit: Lotto number generator project
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>
2025-12-16 14:47:59 +01:00