from:
親測有效的方法:
1、余弦相似性(cosine)
(1)使用sklearn中的向量相似性的計算包,**如下:
這個函式的輸入是n個長度相同的list或者array,函式的處理是計算這n個list兩兩之間的余弦相似性,最後生成的相似矩陣中的s[i][j]表示的是原來輸入的矩陣中的第i行和第j行兩個向量的相似性,所以生成的是n*n的相似性矩陣
from sklearn.metrics.pairwise import cosine_similarity
cosine_similarity([1, 0, 0, 0], [1, 0, 0, 0])
(2)使用scipy包中的距離計算,**如下:
這裡的vec1和vec2都是一維的array向量。
from scipy.spatial.distance import cosine
cosine(vec1, vec2)
2、皮爾森相關係數(pearson)
>>> from scipy import stats
>>> a = np.array([0, 0, 0, 1, 1, 1, 1])
>>> b = np.arange(7)
>>> stats.pearsonr(a, b)
(0.8660254037844386, 0.011724811003954654)
>>> stats.pearsonr([1,2,3,4,5], [5,6,7,8,7])
(0.83205029433784372, 0.080509573298498519)
前面的0.866025和0.862050即為所要求的相關係數,具體用法參見:scipy.stats.pearsonr
3、歐式距離
歐式距離,即歐幾里得距離,這裡的計算有三種方式:
(1)已知vec1和vec2是兩個numpy array,即陣列,使用numpy包計算:
import numpy
dist = numpy.sqrt(numpy.sum(numpy.square(vec1 - vec2)))
(2)也是使用numpy包,相對更加直接,**如下:
奶牛的相似性
奶牛的相似性 description 農夫約翰有兩頭奶牛,他想要知道,這兩頭奶牛到底有多相似,所以他給每頭奶牛拍了mn 指m行n列 的數碼相片,他想要你寫乙個程式幫助他。mn的數碼相片可以分辨出奶牛身上黑色和白色的斑塊,下面是兩頭奶牛的數碼 x 表示黑色部分,表示白色部分 其中m 5,n 7。奶牛1...
基於Python計算余弦相似性
在我們計算相似度時,常常用到余弦夾角來判斷兩個向量或者矩陣之間的相似度,cosine 余弦相似度 取值範圍 1,1 當兩個向量的方向重合時夾角余弦取最大值1,當兩個向量的方向完全相反夾角余弦取最小值 1,兩個方向正交時夾角余弦取值為0。x 1x 1 x1 和 x 2x 2 x2 分別是輸入的兩個向量...
訊號相似性的描述
訊號相似性的描述 在很多的應用場合,經常要描述兩個訊號的相似性。比如在雷達的訊號檢測中,要比較所接收的訊號是否就是發射訊號的延時。有時候,甚至還要描述乙個訊號本身的相似性,比如在語音編碼中,要通過語音頻號本身的相似性,來 下一時刻的訊號值。我們知道,在訊號處理中,用相關函式來描述訊號的相似性。描述兩...