Như @Max đã chỉ ra trong các nhận xét (+1), việc viết "của riêng bạn" sẽ đơn giản hơn so với việc dành thời gian tìm kiếm nó ở một nơi khác. Như chúng ta đã biết, độ tương tự cosin giữa hai vectơ có độ dài lànA , Bn
C= ∑i = 1nMộttôiBtôiΣi = 1nMột2tôi-----√⋅ ∑i = 1nB2tôi-----√
đó là đơn giản để tạo ra trong R. Hãy Xlà ma trận trong đó các hàng là các giá trị chúng ta muốn tính toán độ tương tự giữa. Sau đó, chúng ta có thể tính toán ma trận tương tự với Rđoạn mã sau :
cos.sim <- function(ix)
{
A = X[ix[1],]
B = X[ix[2],]
return( sum(A*B)/sqrt(sum(A^2)*sum(B^2)) )
}
n <- nrow(X)
cmb <- expand.grid(i=1:n, j=1:n)
C <- matrix(apply(cmb,1,cos.sim),n,n)
Sau đó, ma trận Clà ma trận tương tự cosine và bạn có thể chuyển nó tới bất kỳ chức năng bản đồ nhiệt nào bạn thích (cách duy nhất tôi quen thuộc là image()).