[英]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.data
和X2.data
並操縱它們的indices
和indptr
s(或者在coo_matrix
情況下為row
和col
)指向正確的地方。 一些稀疏表示對於特定操作更好,而對於其他操作更復雜,您應該閱讀有關csr_matrix
並查看這是否是最佳表示。 但我真的懇請你從我上面發布的那些教程開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.