Tôi có ứng dụng Django mà tôi cần triển khai một thuật toán xếp hạng/xếp hạng đơn giản. Tôi bị lạc như một:Quyết định và triển khai thuật toán xu hướng ở Django
Tôi có hai kiểu máy, Book
và Reader
. Mỗi đêm, sách mới được thêm vào cơ sở dữ liệu của tôi. Số lượng người đọc cho mỗi cuốn sách được cập nhật quá mỗi đêm, tức là một cuốn sách sẽ có nhiều bản ghi thống kê của người đọc (một bản ghi cho mỗi ngày).
Trong một khoảng thời gian nhất định (tuần trước, tháng trước hoặc năm trước), tôi muốn liệt kê những cuốn sách phổ biến nhất, tôi nên sử dụng thuật toán nào cho điều này?
Mức độ phổ biến không cần phải theo thời gian thực theo bất kỳ cách nào vì số người đọc cho mỗi cuốn sách chỉ được cập nhật hàng ngày.
Tôi đã tìm thấy một bài viết được tham chiếu trong một SO post that showed how they calculated trending Wikipedia articles khác nhưng bài đăng chỉ cho biết cách tính xu hướng hiện tại.
Như ai đó đã chỉ ra trên SO, nó là một thuật toán xu hướng cơ bản rất đơn giản và chỉ tính toán độ dốc giữa hai điểm dữ liệu vì vậy tôi đoán nó cho thấy xu hướng giữa ngày hôm qua và ngày hôm nay.
Tôi không tìm kiếm một uber phức tạp thuật toán xu hướng giống như những người sử dụng trên Hacker News, Reddit, vv
Tôi chỉ có hai trục dữ liệu, số lượng người đọc và ngày.
Bất kỳ ý tưởng nào về cách thức và cách thức tôi nên triển khai. Đối với một người không bao giờ làm việc với bất kỳ thống kê/thuật toán liên quan, điều này có vẻ là một cam kết rất khó khăn.
Cảm ơn mọi người trước.
HI Wilduck, Tôi đã xem xét tính toán EWMA mà bạn đã quy định. Điều đó có vẻ thích hợp cho vấn đề của tôi. Tôi đang bối rối như thế nào để tính toán giá trị của alpha 'α'. Bạn có bất kỳ ý tưởng làm thế nào tôi có thể tính toán này? –
@MridangAgarwalla Tin tốt! Bạn không cần phải tính toán nó! Bạn có thể chọn bất kỳ số nào giữa 0 và 1, trong đó một số gần hơn với một lần giảm giá quan sát cũ nhanh hơn. Sự lựa chọn của bạn sẽ phụ thuộc vào số tiền bạn muốn giảm giá trị cũ hơn, vì vậy bạn có thể chơi với nó cho đến khi bạn tìm thấy một cái gì đó bạn thích. – Wilduck
Điều đó đang được nói, tôi nghĩ rằng một trung bình di chuyển đơn giản (một trong đó không phải là trọng số theo cấp số nhân) có thể làm việc chỉ là tốt cho các mục đích của bạn. Tôi khuyên bạn nên triển khai phiên bản đơn giản trước, và sau đó hoán đổi trong phiên bản có trọng số theo cấp số nhân nếu bạn thấy nó không thỏa đáng. – Wilduck