48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# 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`** — `3_Practice_22.py`와 동일 흐름(DataCrawler → 마지막 JSON 회차+1 크롤 → `predict1`+`predict2`). `lotto_history.txt`로 `BallFilter`를 만들고 회차는 `max(no)+1`, `predict2`는 전 조합 순회(시간 매우 김).
|
|
|
|
## 실행 (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`이 예시 배열로 덮어쓰이던 버그를 수정함.
|
|
|
|
## 참고
|
|
|
|
로또는 무작위에 가깝고, 본 저장소의 필터는 **구매 조합 수를 줄이기 위한 휴리스틱**이며 당첨을 보장하지 않습니다.
|