模糊數學課上完之後對使用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的逆的特徵值等於原矩陣特徵值的倒數,如果能判斷原矩陣是...