python計算相似矩陣

2021-08-20 13:41:15 字數 1533 閱讀 5325

模糊數學課上完之後對使用python中的sklearn計算矩陣各個元素的相似度有了一些感悟。

首先需要強調的是python中對於矩陣的計算盡量不要在dataframe中,效率非常低。應該使用numpy。

1 預處理

from sklearn.preprocessing import standardscaler

from sklearn.preprocessing import minmaxscaler

from sklearn.metrics.pairwise import pairwise_distances

from sklearn.metrics.pairwise import cosine_similarity

>>> matrix= np.array([[ 1., -1., 2.],

... [ 2., 0., 0.],

... [ 0., 1., -1.]])

...>>> min_max_scaler = preprocessing.minmaxscaler()

>>> matrix_minmax = min_max_scaler.fit_transform(matrix)

>>> matrix_minmax

array([[ 0.5 , 0. , 1. ],

[ 1. , 0.5 , 0.33333333],

[ 0. , 1. , 0. ]])

其他方法這裡都有寫

2 計算相似度矩陣

計算相似度矩陣的方法有很多種,發現了sklearn中直接有通過計算余弦相似度得到相似度矩陣的方法

1 sklearn.metrics.pairwise.cosine_similarity

2 sklearn.metrics.pairwise.pairwise_distances

>>> 

from sklearn.metrics.pairwise import cosine_similarity

>>>

from sklearn.metrics.pairwise import pairwise_distances

>>> a=[[1,3],[2,2]]

>>> cosine_similarity(a)

array([[ 1. , 0.89442719],

[ 0.89442719, 1. ]])

>>> pairwise_distances(a,metric="cosine")

array([[ 0. , 0.10557281],

[ 0.10557281, 0. ]])

pairwise_distances方法是 cosine_similarity減1後取絕對值得到的。

嚴格對角佔優矩陣特徵值 相似矩陣

一 向量是基底的組合.在空間中,我們可以用向量的終點來代替向量本身,那麼在乙個既定基底中 乙個向量x可以表示為 x,y 本質上x和y可以理解為兩個標量,是對應基底向量的個數.以二維空間為例 設基底為i 1,0 j 0,1 則 xi yj x和y就是個數 那麼如果基底換了呢?比如基底變成i 2,1 j...

優化計算相似度矩陣

任務 現有特徵矩陣x r n fx in r x rn f n為樣本個數,f為特徵大小,需要計算相似度矩陣a aa,aij aji a a aij a ji 為第i個樣本和第j個樣本的相似度,利用歐式距離求解兩個樣本間的距離 a ij aji f 1f x if x jf 2 a a sum x x...

線性代數導論29 相似矩陣和若爾當形

第二十九課時 相似矩陣和若爾當形 本講介紹相似矩陣,兩個矩陣相似意味著什麼。正定矩陣 回顧上講內容,正定矩陣有 xt ax 0 也可直接通過特徵值,主元或者行列式來做判斷。假設a是乙個正定矩陣,它是乙個對稱矩陣,那麼a的逆矩陣也是對稱的,而且,a的逆的特徵值等於原矩陣特徵值的倒數,如果能判斷原矩陣是...