Lucene - Core
  1. Lucene - Core
  2. LUCENE-4927

Prevent underflow in NB classifier likelihood calculation

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.2
    • Fix Version/s: 4.7, 5.0
    • Component/s: modules/classification
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      Current likelihood calculation multiplies probabilities (whose values are between 0 and 1) thus having longish docs with unfrequent words for some class/category may lead to multiple double multiplications to return 0 even if that's not the correct value (thus assigning such a class 0 probability too).

      Probably using loglikelihood and/or BigDecimals may help.

        Activity

        Hide
        ASF subversion and git services added a comment -

        Commit 1544433 from Tommaso Teofili in branch 'dev/trunk'
        [ https://svn.apache.org/r1544433 ]

        LUCENE-4927 - switched to log prior/likelihood to avoid possible underflows

        Show
        ASF subversion and git services added a comment - Commit 1544433 from Tommaso Teofili in branch 'dev/trunk' [ https://svn.apache.org/r1544433 ] LUCENE-4927 - switched to log prior/likelihood to avoid possible underflows
        Hide
        ASF subversion and git services added a comment -

        Commit 1545169 from Tommaso Teofili in branch 'dev/branches/branch_4x'
        [ https://svn.apache.org/r1545169 ]

        LUCENE-4927 - backported to 4x

        Show
        ASF subversion and git services added a comment - Commit 1545169 from Tommaso Teofili in branch 'dev/branches/branch_4x' [ https://svn.apache.org/r1545169 ] LUCENE-4927 - backported to 4x

          People

          • Assignee:
            Tommaso Teofili
            Reporter:
            Tommaso Teofili
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development