Description Usage Arguments Value Note Author(s) Examples

Calculates the cosine similarity and angular similarity on two vectors or a matrix

1 |

`x` |
A vector or matrix object |

`y` |
If x is a vector, then a vector object |

If x is a matrix, a list object with: similarity and angular.similarity matrices

If x and y are vectors, a vector of similarity and angular.similarity

The cosine similarity index is a measure of similarity between two vectors of an inner product space. This index is bested suited for high-dimensional positive variable space. One useful application of the index is to measure separability of clusters derived from algorithmic approaches (e.g., k-means). It is a good common practice to centre the data before calculating the index. It should be noted that the cosine similarity index is mathematically, and often numerically, equivalent to the Pearson's correlation coefficient

cosine similarity index is derived:

s(xy) = x * y / ||x|| * ||y||

expected 1.0 (perfect similarity) to -1.0 (perfect dissimilarity)

A normalised angle between the vectors can be used as a bounded similarity function within [0,1]

angular similarity = 1 - (cos(s)^-1/pi)

Jeffrey S. Evans <[email protected]>

1 2 3 4 5 6 7 8 9 10 11 12 13 | ```
# Compare two vectors (centred using scale)
x=runif(100)
y=runif(100)^2
csi(as.vector(scale(x)),as.vector(scale(y)))
#' # Compare columns (vectors) in a matrix (centred using scale)
x <- matrix(round(runif(100),0),nrow=20,ncol=5)
( s <- csi(scale(x)) )
# Compare vector (x) to each column in a matrix (y)
y <- matrix(round(runif(500),3),nrow=100,ncol=5)
x=runif(100)
csi(as.vector(scale(x)),scale(y))
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.