@Shareable @ThreadSafe public class PearsonCorrelation extends java.lang.Object implements VectorSimilarity, java.io.Serializable
Similarity function using Pearson correlation.
This class implements the Pearson correlation similarity function over sparse vectors. Only the items occurring in both vectors are considered when computing the variance.
See Desrosiers, C. and Karypis, G., A Comprehensive Survey of Neighborhood-based Recommendation Methods. In Ricci, F., Rokach, L., Shapira, B., and Kantor, P. (eds.), Recommender Systems Handbook, Springer. 2010, pp. 107-144.
| Constructor and Description |
|---|
PearsonCorrelation() |
PearsonCorrelation(double s) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
isSparse()
Query whether this similarity function is sparse (returns 0 for vectors with disjoint key sets).
|
boolean |
isSymmetric()
Query whether this similarity function is symmetric.
|
double |
similarity(Long2DoubleMap vec1,
Long2DoubleMap vec2)
Compute the similarity between two vectors.
|
java.lang.String |
toString() |
public PearsonCorrelation()
@Inject public PearsonCorrelation(@SimilarityDamping double s)
public double similarity(Long2DoubleMap vec1, Long2DoubleMap vec2)
VectorSimilarityCompute the similarity between two vectors.
similarity in interface VectorSimilarityvec1 - The left vector to compare.vec2 - The right vector to compare.public boolean isSparse()
VectorSimilarityQuery whether this similarity function is sparse (returns 0 for vectors with disjoint key sets).
isSparse in interface VectorSimilaritytrue iff VectorSimilarity.similarity(Long2DoubleMap, Long2DoubleMap) will always return true when applied to two vectors with no keys in common.public boolean isSymmetric()
VectorSimilarityQuery whether this similarity function is symmetric. Symmetric similarity functions return the same result when called on (A,B) and (B,A).
isSymmetric in interface VectorSimilaritytrue if the function is symmetric.public java.lang.String toString()
toString in class java.lang.Object