Changeset 1156 for trunk/yat


Ignore:
Timestamp:
Feb 26, 2008, 9:46:49 AM (13 years ago)
Author:
Markus Ringnér
Message:

Refs. #335, fixed for KNN

Location:
trunk/yat/classifier
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/classifier/KNN.h

    r1144 r1156  
    245245        (*distances)(i,j) = distance_(training1.begin(), training1.end(),
    246246                                      test1.begin());
     247        // If the distance is NaN (no common variables with non-zero weights),
     248        // the distance is set to infinity to be sorted as a neighbor at the end
     249        if(std::isnan((*distances)(i,j)))
     250          (*distances)(i,j)=std::numeric_limits<double>::infinity();
    247251      }
    248252    }
  • trunk/yat/classifier/KNN_ReciprocalRank.cc

    r1112 r1156  
    77#include "yat/utility/VectorMutable.h"
    88
     9#include <cmath>
    910#include <vector>
    1011
     
    1920  {           
    2021    for(size_t j=0;j<k_sorted.size();j++)
    21       prediction(target(k_sorted[j]))+=1.0/(j+1);               
     22      if(!std::isinf(distance(k_sorted[j])))
     23         prediction(target(k_sorted[j]))+=1.0/(j+1);               
    2224  }
    2325
  • trunk/yat/classifier/KNN_Uniform.cc

    r1142 r1156  
    77#include "yat/utility/VectorMutable.h"
    88
     9#include <cmath>
    910#include <vector>
    1011
     
    1920  {           
    2021    for(size_t j=0;j<k_sorted.size();j++)
    21       prediction(target(k_sorted[j]))+=1.0;           
     22      if(!std::isinf(distance(k_sorted[j])))
     23         prediction(target(k_sorted[j]))+=1.0;           
    2224  }
    2325
Note: See TracChangeset for help on using the changeset viewer.