簡體   English   中英

SciPy NumPy和SciKit-learn,創建一個稀疏矩陣

[英]SciPy NumPy and SciKit-learn , create a sparse matrix

我目前正在嘗試對文本進行分類。 我的數據集太大了, 這里建議我需要使用稀疏矩陣。 我現在的問題是,將元素添加到稀疏矩陣的正確方法是什么? 比方說,我有一個矩陣X,這是我的輸入。

X = np.random.randint(2, size=(6, 100))

現在這個矩陣X看起來像ndarray(或類似的東西)的ndarray。

如果我做

X2 = csr_matrix(X)

我有稀疏矩陣,但是如何在sparce矩陣中添加另一個元素? 例如,這個密集元素:[1,0,0,0,1,1,1,0,...,0,1,0]到稀疏向量,如何將其添加到稀疏輸入矩陣?

(順便說一句,我是python的新手,scipy,numpy,scikit ......一切)

Scikit-learn有一個很棒的文檔,有很好的教程,你真的應該在嘗試自己發明之前閱讀。 是第一個閱讀它解釋如何分類文本,一步一步, 是一個使用稀疏表示的文本分類的詳細示例。

節中,要特別注意他們談論稀疏表示的部分。 一般來說,如果你想使用帶有線性內核的svm和大量的數據,LinearSVC(基於Liblinear)會更好。

關於你的問題 - 我確信有很多方法可以連接兩個稀疏矩陣(順便說一句,這是你應該在google中尋找的其他方法),這里有一個,但你必須從csr_matrix轉換為coo_matrix是一種稀疏矩陣的coo_matrix一種類型: 是否有一種連接scipy.sparse矩陣的有效方法?

編輯:當連接兩個矩陣(或矩陣和數組是一個二維矩陣)時,一般的想法是連接X1.dataX2.data並操縱它們的indicesindptr s(或者在coo_matrix情況下為rowcol )指向正確的地方。 一些稀疏表示對於特定操作更好,而對於其他操作更復雜,您應該閱讀有關csr_matrix並查看這是否是最佳表示。 但我真的懇請你從我上面發布的那些教程開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM