mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Owen <sro...@gmail.com>
Subject Re: Computing userSimilarity in Taste AbstractSimilarity
Date Thu, 30 Sep 2010 21:38:14 GMT
I think it does work, but this code is definitely hard to grok. In my
defense it is complex for a reason at least -- performance.

When the end of one list of prefs is reached (the line "if (++xPrefIndex >=
xLength)") it does check for an inferrer in the next line. If there is one,
it sets "xIndex = Long.MAX_VALUE", and continues. This ensures the rest of
the y values are compared against an inferred x value.

Step through to convince yourself. Or, if you find I am actually completely
wrong do let me know.

On Thu, Sep 30, 2010 at 10:20 PM, Abigail Gertner <gertner@mitre.org> wrote:

> Hello - I noticed something that I think might be a problem with the
> userSimilarity computation in the AbstractSimilarity class. After
> updating the running sums, the method checks the value of compare and
> moves to the next preference value in the list that has the smaller item
> index, or both if they are both on the same item. It breaks out of the
> loop if it is at the end of the preference list(s) that it needs to get
> the next value of. The problem is that it doesn't take into account if
> there is a preference inferrer -- if it is at the end of one of the
> lists, it will break out of the loop even if there is a preference
> inferrer. This results in ignoring the rest of the items in the other
> users preferences.
>
> Am I missing something or does this need to be corrected?
>
> Thanks for your help,
> -Abigail
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message