2014-04-21 41 views
0

我有一個巨大的矩陣(10 * 10k)。我想知道是否有辦法找到各行之間的相似之處。如何在矩陣中找到相似點?

讓我們給矩陣的例子:4 * 5

col1 col2 col3 col4 
0  0  1  0 
2  3  4  5 
2  3  2  3 
0  0.1 1  0 
0  0  1  0 

我想知道是否有統計學理論,以確定數據之間的similaritieis。

1號線就像是5號線2號線100%是像3號線

50%,但我怎麼能對付那些接近到每個人的數字。

第4行和第5行具有相同的值。同樣我們如何找到一種計算相似概率的方法? python,numpy,scikit-learn有什麼功能可以計算出來嗎?

import numpy 

mat= numpy.random.random((30, 30)) 

def find_similarities(line,targeted_line): 
    .. 
+0

這不是一個真正的問題。我會說你最好想一想爲什麼你要這樣做。然後找出你想要對你的矩陣做什麼。在此之前,我認爲現在搜索numpy函數還爲時過早。 – exp1orer

回答

1

看一看similarity measuressimilarity functions。計算每行之間的Euclidean DistanceCosine Similarity將解決您的問題。您還可以通過根據您的需求調整想法,從海明距離或Jaccard指數中受益。您可以計算O(n)時間和O(1)空間中的大部分相似性。