Move ratings from Elo to Glicko-2
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, node.js
Hướng nghiên cứu
Start with backend/elo.js to map the current rating cases and calculatePartialCreditRatings, then inspect backend/db.js and battles_history for migration and backtest inputs. Read the linked Glicko-2 paper and build the worked-example unit test first. Done means the migration is idempotent, the feature flag keeps Elo as default, the specified tests and boundary check pass, and the pull request reports the requested backtest and rating-change distribution.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Ratings use Elo with stepped K-factors (backend/elo.js). Elo has no notion of how sure it is about a rating. A player returning after six months and a player with 500 games in the last week move by the same amount, and new players take many games to land where they belong.
Glicko-2 tracks rating, rating deviation and volatility. It fixes all of that, and it lets matchmaking prefer opponents whose ratings are confident.
What to do
- Implement Glicko-2 in a new
backend/glicko2.jswith a pure API, following the paper exactly. Include the paper's worked example as a unit test that must match to 4 decimal places. - Support the cases
elo.jshandles today: win, loss, tie and partial credit (calculatePartialCreditRatings). For partial credit, map the test-pass ratio to an actual score in [0, 1] and document the choice. - Inactivity: rating deviation grows over time without games, per the paper's rating-period step.
- Migrate existing players: seed rating from current Elo, rating deviation from games played and last-played date. Write it as a migration in
backend/db.jsthat is safe to run twice. - Keep
getRankTierandgetRankDivisionon the displayed rating so tiers do not change meaning. - Show "provisional" next to ratings whose deviation is high.
Evidence required in the pull request
- Backtest on real history: replay
battles_historyin order under both systems and report how well each predicts the next result (log loss or Brier score). Glicko-2 must do at least as well as Elo, or the pull request should explain why it is still worth it. - Distribution of rating changes before and after for a typical week.
Definition of done
- Behind a flag (
CODEARENA_RATING=glicko2) until the backtest is reviewed. Elo stays the default. npm testandnode scripts/check-boundary.jspass.
- Ngôn ngữ chính
- JavaScript
- Star
- 0
- Fork
- 2
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của sennaicodes/codearena
-
Add issue and pull request templatesCó thể làm lại được @franciscorodr26 đã nhận 19 ngày trước và không có pull request nào đang mở. Đang mởdocumentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
sennaicodes/codearena#13 · 1 bình luận ·
-
enhancement help wanted
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 38/100
sennaicodes/codearena#31 ·
Tất cả issue của sennaicodes/codearena
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Fei2411/DeepSeek-Bot#634 ·
-
beginner-friendly category:sarif community enhancement first-timers-only good first issue hacktoberfest help wanted low hanging fruit micro-contribution type: task up-for-grabs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
Berserk-hub150/skillhawk#244 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 8 ngày
-
enhancement javascript python
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
jlab-sensing/ENTS-backend#851 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Pin GitHub Actions to Ubuntu 26.04Có thể đã có người làm @krusty93 đã nhận hôm nay. Đang mởchore infra:workflow-automation
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 91/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
guilhermerodz/input-otp#157 · 1 bình luận ·