Używam Pythona z modułem numpy, scipy i scikit-learn.Oblicz podobieństwo rzadkiej macierzy
Chciałbym sklasyfikować tablice w bardzo dużej macierzy rzadkiej. (100,000 * 100,000)
Wartości w macierzy są równe 0 lub 1. Jedyną rzeczą, jaką ma to indeks o wartości = 1.
a = [1,3,5,7,9]
b = [2,4,6,8,10]
co oznacza
a = [0,1,0,1,0,1,0,1,0,1,0]
b = [0,0,1,0,1,0,1,0,1,0,1]
Jak mogę zmienić tablicę indeksów na sparse array w scipy?
Jak szybko sklasyfikować tablicę?
Dziękuję bardzo.
to sprawia, że zastanawiam się, czy to możliwe, aby po prostu sprawiają, że cała matryca non-rzadki, ponieważ wszystkie wartości są 0 lub 1 tak czy inaczej, więc zamiast 64bit na float lub tak, używasz tylko jeden bit każdy? (wiem, że to nie rozwiązuje twojego problemu, ale twoje pytanie sprawiło, że zadałam to pytanie) – usethedeathstar
Jakie podobieństwo chcesz obliczyć? Dlaczego potrzebujesz rzadkiej matrycy, zamiast tylko używać indeksów? Co powiesz na coś prostego jak len (set (a) & set (b))/float (len (a))? –
Właściwie chciałbym zgrupować te tablice z podobieństwa. Na przykład [1,1,1,0] jest bardziej podobny do [1,1,0,0], ale odwrotnie do [0,0,0,1]. Ponieważ liczba kolumn i wierszy jest duża. Nie wiem, czy istnieje jakakolwiek metoda mogłaby zrobić to wcześniej. –