My Project
|
Kullback-Leibler distance. More...
#include <distance.h>
Kullback-Leibler distance.
Kullback-Leibler distance when talking about probability vectors (for interaction similarity)
class KL:public dist{ public: Constructor* KL(){type = 5;};
Compute the similarity
C1 | First cluster to compare |
C2 | Second cluster to compare |
template <typename t>=""> double operator() (T C1, T C2){ typename T::iterator it_t, it_t2;
double sum = 0;
for (it_t = C1.begin(), it_t2 = C2.begin(); it_t != C1.end() && it_t2 != C2.end(); it_t++, it_t2++){ sum += (*it_t) * (log((double)(*it_t)/(double)(*it_t2))); }
return sum; } };