开发者

Tanimoto Score and when it is used

I read a wiki article which describes about Jaccard index and explains the Tanimoto score as extended Jaccard index, but what exactly it tries to do?

How is it different from other similarity scores?

When is it used开发者_JAVA技巧?

Thank you


I just read the wikipedia article too, so I can only interpret the content for you.

Jaccards score is used for vectors that take discrete values, most often for binary values (1 or 0). Tanimoto score is used for vectors that can take on continuous values. It is designed so that if the vector only takes values of 1 and 0, it works the same as Jaccards.

I would imagine you would Tanimoto's when you have a 'mixed' vector that has some continuous valued parts and some binary valued parts.


what exactly it tries to do?

Tanimoto score assumes that each data object is a vector of attributes. The attributes may or may not be binary in this case. If they all are binary, the Tanimoto method reduces to the Jaccard method.

T(A,B)= A.B/(||A||2 + ||B||2 - A.B)

In the equation, A and B are data objects represented by vectors. The similarity score is the dot product of A and B divided by the squared magnitudes of A and B minus the dot product.

How is it different from other similarity scores?

  1. Tanimoto v/s Jaccard: If the attributes are binary, Tanimoto is reduced to Jaccard Index.

There are various similarity scores available but let's compare with the most frequently used.

  1. Tanimoto v/s Dice:

The Tanimoto coefficent is determined by looking at the number of attributes that are common to both data objects (the intersection of the data strings) compared to the number of attributes that are in either (the union of the data objects).

The Dice coefficient is the number of attributes in common to both data objects relative to the average size of the total number of attributes present, i.e. ( A intersect B ) / 0.5 ( A + B )

D(A,B) = A.B/(0.5(||A||2 + ||B||2))
  1. Tanimoto v/s Cosine

Finding the cosine similarity between two data objects requires that both objects represent their attributes in a vector. Similarity is then measured as the angle between the two vectors.

Cos(θ) = A.B/(||A||.||B||)

You can also refer When can two objects have identical Tanimoto and Cosine score.

  1. Tanimoto v/s Pearson:

The Pearson Coefficient is a complex and sophisticated approach to finding similarity. The method generates a "best fit" line between attributes in two data objects. The Pearson Coefficient is found using the following equation:

p(A,B) = cov(A,B)/σAσB

where, cov(A,B) --> Covariance

σ A --> Standard deviation of A

σ B --> Standard deviation of B

The coefficient is found from dividing the covariance by the product of the standard deviations of the attributes of two data objects. It is more robust against data that isn't normalized. For example, if one person ranked movies "a", "b", and "c" with scores of 1, 2, and 3 respectively, he would have a perfect correlation to someone who ranked the same movies with a 4, 5, and 6.

For more information on Tanimoto score v/s other similarity scores/coefficients you can refer: Why is Tanimoto index an appropriate choice for fingerprint-based similarity calculations?

When is it used?

Tanimoto score can be used in both the situations:

  • When attributes are Binary
  • When attributes are Non-Binary

Following applications extensively use Tanimoto score:

  • Chemoinformatics
  • Clustering
  • Plagiarism detection
  • Automatic thesaurus extraction
  • To visualize high-dimensional datasets
  • Analyze market-basket transactional data
  • Detect anomalies in spatio-temporal data
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜