Skip to content

chkomi/lotto

Repository files navigation

🎰 로또 번호 분석 시스템

엔트로피 가중치법(Entropy Weight Method)을 활용한 과학적 로또 번호 예측 시스템

📋 개요

이 시스템은 정보 이론의 엔트로피 개념을 활용하여 로또 번호의 출현 가능성을 분석합니다. 8가지 통계적 특성을 자동으로 가중치화하여 각 번호의 점수를 산출하고, 백테스팅을 통해 모델의 성능을 검증합니다.

🎯 주요 기능

1. 다음 회차 예측

  • 엔트로피 가중치법을 활용한 번호별 출현 가능성 점수 계산
  • 상위 N개 예측 번호 추천 (기본 10개)
  • 실시간 특성별 가중치 시각화

2. 백테스팅

  • 슬라이딩 윈도우 방식의 과거 데이터 검증
  • 회차별 예측 정확도 측정
  • 적중 개수 분포 분석
  • 성과 지표:
    • Top 6/10 정확도
    • 평균 적중 개수
    • 평균 순위
    • 3개 이상 적중률

3. 통계 분석

  • 번호별 출현 빈도
  • 구간별 분포 (1-9, 10-18, 19-27, 28-36, 37-45)
  • 홀짝 비율
  • 보너스 번호 통계

🔬 엔트로피 가중치법

핵심 원리

1. 데이터 정규화: p_ij = x_ij / Σx_ij
2. 엔트로피 계산: E_j = -k * Σ(p_ij * ln(p_ij)), k = 1/ln(n)
3. 차이도 계산: D_j = 1 - E_j
4. 가중치 계산: W_j = D_j / ΣD_j

특징

  • 객관적 가중치: 데이터의 정보량에 따라 자동으로 가중치 결정
  • 엔트로피가 낮을수록 → 정보량 많음 → 가중치 높음
  • 엔트로피가 높을수록 → 정보량 적음 → 가중치 낮음

📊 분석 특성 (8가지)

  1. 최근 출현 빈도 (Recent Frequency)

    • 최근 N회차 동안의 출현 횟수
    • 최근 트렌드 반영
  2. 미출현 기간 (Absence Period)

    • 마지막 출현 이후 경과 회차 수
    • 적절한 미출현 기간에 높은 점수
  3. 출현 간격 패턴 (Interval Pattern)

    • 출현 간격의 규칙성/변동성
    • 표준편차가 낮을수록 규칙적
  4. 홀짝 균형도 (Odd-Even Balance)

    • 최근 홀수/짝수 출현 비율
    • 부족한 쪽에 높은 점수
  5. 구간 분포 (Section Distribution)

    • 5개 구간별 출현 분포
    • 부족한 구간에 높은 점수
  6. 연속 번호 패턴 (Consecutive Pattern)

    • 연속된 번호와의 동반 출현
    • 연속 출현 경향 분석
  7. 보너스 이력 (Bonus History)

    • 보너스 번호 출현 이력
    • 일반 당첨 가능성 평가
  8. 평균 회귀 (Mean Reversion)

    • 전체 평균 대비 최근 출현률
    • 평균으로 회귀하는 경향

🚀 사용 방법

설치 및 실행

  1. 파일 구조 확인
lotto_claude/
├── index.html
├── css/
│   └── style.css
├── js/
│   ├── entropy.js
│   ├── analyzer.js
│   ├── backtest.js
│   └── main.js
└── data/
    └── lotto_1_1202.csv
  1. 웹 브라우저로 index.html 열기
    • 로컬 서버 사용 권장 (CORS 이슈 방지)
    • Python: python -m http.server 8000
    • Node.js: npx http-server

예측 탭

  1. 분석 회차 수 설정 (기본 50회)

    • 최근 데이터 영향도 조절
  2. 예측 번호 개수 설정 (기본 10개)

    • 상위 몇 개까지 볼지 선택
  3. 분석 실행

    • "다음 회차 예측" 버튼 클릭
    • 예측 번호 및 점수 확인
    • 특성별 가중치 확인

백테스팅 탭

  1. 기간 설정

    • 시작 회차: 예) 1100
    • 종료 회차: 예) 1150
  2. 백테스트 실행

    • 각 회차별로 이전 데이터로 학습
    • 실제 당첨번호와 비교
    • 성능 지표 확인
  3. 결과 분석

    • 적중 개수 분포 차트
    • 성능 추이 그래프
    • 상세 결과 테이블
  4. 결과 내보내기

    • CSV 파일로 저장
    • Excel에서 추가 분석 가능

통계 탭

  • 전체 회차 번호별 출현 빈도
  • 구간별 분포 파이 차트
  • 홀짝 비율 도넛 차트
  • 최다/최소 출현 번호

💡 활용 팁

예측 정확도 향상

  1. 적절한 분석 회차

    • 너무 짧으면: 노이즈 영향
    • 너무 길면: 최근 트렌드 반영 부족
    • 권장: 50-100 회차
  2. 백테스팅 활용

    • 다양한 기간에서 테스트
    • 안정적인 성능 확인
    • 최적 파라미터 찾기
  3. 특성 가중치 모니터링

    • 가중치가 높은 특성 주목
    • 시기별 중요 특성 변화 관찰

해석 가이드

  • 점수 100점 만점: 높을수록 출현 가능성 높음
  • 순위: 1-45위, 상위권 번호 주목
  • 적중 3개 이상: 일반적으로 양호한 성능
  • 평균 순위 15 이하: 예측이 실제 당첨번호에 가까움

⚠️ 중요 안내

이 시스템은 교육 및 연구 목적으로 제작되었습니다.

  • 로또는 완전한 무작위 추첨입니다
  • 어떠한 분석 방법도 당첨을 보장할 수 없습니다
  • 과거 데이터는 미래 결과를 예측하지 못합니다
  • 과도한 구매는 삼가시기 바랍니다
  • 책임 있는 복권 구매를 권장합니다

🛠️ 기술 스택

  • Frontend: HTML5, CSS3, JavaScript (ES6+)
  • 차트: Chart.js
  • 알고리즘: 엔트로피 가중치법
  • 데이터: CSV (1-1202회 로또 데이터)

📈 성능 메트릭

백테스팅 결과 예시 (회차별로 다를 수 있음):

  • 평균 적중 개수: 1.5 - 2.5개 (무작위: ~1.0개)
  • Top 10 정확도: 25-35% (무작위: ~13%)
  • 3개 이상 적중률: 15-25% (무작위: ~5%)

🔍 알고리즘 검증

  1. 엔트로피 계산 검증

    • 정규화 프로세스 확인
    • 가중치 합계 = 1 보장
  2. 백테스팅 프로세스

    • 슬라이딩 윈도우 방식
    • Look-ahead bias 방지
    • 실제 사용 시나리오 시뮬레이션
  3. 통계적 유의성

    • 무작위 선택 대비 비교
    • 장기간 데이터 검증

📝 라이센스

이 프로젝트는 교육 목적으로 자유롭게 사용 가능합니다.


개발: Claude Code Assistant 버전: 1.0.0 최종 업데이트: 2024년 12월

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors