2014-05-23 28 views
9

Tôi có hai phương pháp xếp hạng một danh sách các chuỗi khác nhau và những gì chúng tôi có thể coi là xếp hạng "đúng" của danh sách (ví dụ: tiêu chuẩn vàng).Khoảng cách giữa các bảng xếp hạng

Nói cách khác:

ranked_list_of_strings_1 = method_1(list_of_strings) 
ranked_list_of_strings_2 = method_2(list_of_strings)  
correctly_ranked_list_of_strings # Some permutation of list_of_strings 

Làm thế nào tôi có thể xác định phương pháp tốt hơn là xem xét rằng method_1method_2 là hộp đen? Có phương pháp nào để đo lường khả năng này hoặc trong các thư viện SciPy hoặc scikit-learn hoặc các thư viện tương tự không?

Trong trường hợp cụ thể của tôi, tôi thực sự có một khung dữ liệu và mỗi phương thức sẽ tạo ra một điểm số. Điều quan trọng không phải là sự khác biệt về điểm số giữa các phương pháp và điểm số thực sự, nhưng các phương pháp nhận được số xếp hạng ngay (điểm cao hơn có nghĩa là xếp hạng cao hơn cho tất cả các cột).

 strings  scores_method_1 scores_method_2 true_scores 
5714 aeSeOg     0.54    0.1   0.8 
5741 NQXACs     0.15    0.3   0.4 
5768 zsFZQi     0.57    0.7   0.2 

Trả lời

8

Bạn đang tìm kiếm lợi nhuận tích lũy được chiết khấu bình thường (NDGC). Đó là một số liệu thường được sử dụng trong bảng xếp hạng công cụ tìm kiếm để kiểm tra chất lượng xếp hạng kết quả.

Ý tưởng là bạn kiểm tra xếp hạng của mình (trong trường hợp của bạn là hai phương pháp) đối với phản hồi của người dùng thông qua các lần nhấp (trong dàn diễn viên của bạn xếp hạng thực sự). NDGC sẽ cho bạn biết chất lượng xếp hạng của bạn liên quan đến sự thật.

Python có RankEval mô-đun dựa trên thực hiện số liệu này (và một số người khác nếu bạn muốn dùng thử). Các repo is here và có một tốt đẹp IPython NB with examples

Các vấn đề liên quan