2014-11-05 3 views
0

Im новый с scikit и SciPy и я попытался следующие:Что такое матрица scipy.sparse в формате CSR?

# -- coding: utf-8 -- 
from sklearn.feature_extraction import FeatureHasher 
data = [[('this', 'is'), ('is', 'a'), ('a', 'text')], 
     [('and', 'one'), ('one', 'more')],] 

fh = FeatureHasher(input_type='string') 
X = fh.transform(((' '.join(x) for x in sample) for sample in data)) 
print X 

Проблема заключается в том, что я не понимаю, выход:

(0, 18882) 1.0 
    (0, 908056) 1.0 
    (0, 1003453) 1.0 
    (1, 433727) 1.0 
    (1, 575892) -1.0 

Может кто-нибудь объяснить мне, что делает этот выход средства ?. Я прочитал метод documentation метода FeatureHasher(), но не понял его.

+0

Проверьте эту ссылку [ML-Hashing] (http://stats.stackexchange.com/questions/73325/understanding-feature-hashing) – badc0re

ответ

2

Это дисплей большой разреженной матрицы, реализованный в scipy.sparse.

(0, 18882) 1.0 
    (0, 908056) 1.0 
    (0, 1003453) 1.0 
    (1, 433727) 1.0 
    (1, 575892) -1.0 

X.shape даст размеры. X.todense() создает обычную матрицу numpy с большим количеством нулевых значений.

Вот пример гораздо меньшего разреженной матрицы:

In [182]: from scipy import sparse 
In [183]: X=sparse.csr_matrix([[0,1,2],[1,0,0]]) 
In [184]: X 
Out[184]: 
<2x3 sparse matrix of type '<type 'numpy.int32'>' 
    with 3 stored elements in Compressed Sparse Row format> 
In [185]: print X 
    (0, 1) 1 
    (0, 2) 2 
    (1, 0) 1 
In [186]: X.todense() 
Out[186]: 
matrix([[0, 1, 2], 
     [1, 0, 0]]) 
In [187]: X.toarray() 
Out[187]: 
array([[0, 1, 2], 
     [1, 0, 0]]) 

print X показывает отличные от нуля значения этой матрицы, в формате (row, col) value.

Ваш X является как минимум матрицей (2,1003454), но в основном нулями.

Смежные вопросы