[ 
https://issues.apache.org/jira/browse/MAHOUT-186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12763124#action_12763124
 ] 

Ted Dunning commented on MAHOUT-186:
------------------------------------


I don't quite understand the last comment, but generally if you want the top n 
items in descending order, you keep a descending queue as you say in order to 
make insertion efficient.  It is generally good to cache the score of the least 
element to speed comparisons even a little bit more.

Then when you want the results, you can just fill a list in reverse order 

or just do this:

        List r = new ArrayList(priorityQueue);
        Collections.reverse(r);

Since this is pretty simple, I think I misunderstood the question.

> Classifier PriorityQueue returns erroneous results
> --------------------------------------------------
>
>                 Key: MAHOUT-186
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-186
>             Project: Mahout
>          Issue Type: Bug
>    Affects Versions: 0.1, 0.2
>            Reporter: Robin Anil
>            Assignee: Robin Anil
>             Fix For: 0.2
>
>         Attachments: MAHOUT-186.patch
>
>
> A simple test fails 
> import org.apache.hadoop.util.PriorityQueue;
> PriorityQueue<ClassifierResult> queue = new ClassifierResultPriorityQueue(3);
>     queue.insert(new ClassifierResult("label1", 5));
>     queue.insert(new ClassifierResult("label2", 4));
>     queue.insert(new ClassifierResult("label3", 3));
>     queue.insert(new ClassifierResult("label4", 2));
>     queue.insert(new ClassifierResult("label5", 1));
>     
>     assertEquals("Incorrect Size", 3, queue.size());
>     log.info(queue.pop().toString());
>     log.info(queue.pop().toString());
>     log.info(queue.pop().toString());
> 09/10/07 16:58:39 INFO common.ClassifierResultPriorityQueueTest: 
> ClassifierResult{category='label3', score=3.0}
> 09/10/07 16:58:39 INFO common.ClassifierResultPriorityQueueTest: 
> ClassifierResult{category='label4', score=2.0}
> 09/10/07 16:58:39 INFO common.ClassifierResultPriorityQueueTest: 
> ClassifierResult{category='label5', score=1.0}
> Expected label1 and label2 at the top

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to