# deeplottery ## 데이터 구간 | 구간 | 회차 | |------|------| | 학습 | `lotto_history.txt` 1~800 | | 검증 | 801~1000 | | 테스트 | 1001~이후 | ## 핵심 파일 - **`final_BallFilter.py`** — 필터 로직 (`BallFilter_25` 기반, `lotto_history.txt` CSV 로드, `socket` 제거). - **`final_filter_params.py`** — 학습 구간(1~800회)에서만 집계한 **6개 합**·**전주 합 차이** 허용 집합. - **`filter_model.py`** — `from final_BallFilter import BallFilter` 재노출. - **`train.py` / `valid.py`** — 구간별로 당첨 6개가 모든 필터를 통과한 회차 수 집계. - **`final_filterTest.py`** — `1_FilterTest_25.py`와 동일한 분석·(선택) MC 생존 추정. - **`final_Practice.py`** — DataCrawler → 마지막 JSON 회차+1 크롤 → `predict1`+`predict2`. `lotto_history.json`으로 `BallFilter` 한 번 생성 후 공유. `predict1`은 고정 5조합(기존 1 + 미당첨 4, `hasWon`으로 제외) 후 `predict2`는 정렬된 6개·`seen`·과거 당첨 조합 제외 후 필터. ## 실행 (miniconda **ncue**) ```bash conda activate ncue python train.py python valid.py python final_filterTest.py # 특정 회차 생존 조합 수 Monte Carlo 근사 python final_filterTest.py --mc-no 900 --mc-samples 12000 python final_practice.py ``` 동일 환경을 셸 스크립트로: ```bash ./scripts/run_with_ncue.sh train.py ./scripts/run_with_ncue.sh valid.py ``` ## 설계 요약 - **6개 합 / 전주 합 차이**는 `final_filter_params.TRAIN_ALLOW`로 학습 구간 분포에 맞춤. - 그 외 통계·배수·용지 패턴·쌍/3조합 등은 `BallFilter_25`와 동일한 고정 규칙을 유지해 과도하게 느슨해지지 않도록 함. - `filterOneDigitPattern`에서 인자 `ball`이 예시 배열로 덮어쓰이던 버그를 수정함. ## 참고 로또는 무작위에 가깝고, 본 저장소의 필터는 **구매 조합 수를 줄이기 위한 휴리스틱**이며 당첨을 보장하지 않습니다.