Oli*_*s_j 5 python numpy matrix scipy scikit-learn
我目前正在尝试对文本进行分类.我的数据集太大了,这里建议我需要使用稀疏矩阵.我现在的问题是,将元素添加到稀疏矩阵的正确方法是什么?比方说,我有一个矩阵X,这是我的输入.
X = np.random.randint(2, size=(6, 100))
Run Code Online (Sandbox Code Playgroud)
现在这个矩阵X看起来像ndarray(或类似的东西)的ndarray.
如果我做
X2 = csr_matrix(X)
Run Code Online (Sandbox Code Playgroud)
我有稀疏矩阵,但是如何在sparce矩阵中添加另一个元素?例如,这个密集元素:[1,0,0,0,1,1,1,0,...,0,1,0]到稀疏向量,如何将其添加到稀疏输入矩阵?
(顺便说一句,我是python的新手,scipy,numpy,scikit ......一切)
zen*_*poy 13
Scikit学习有很大的文件,与你真正伟大的教程应该尝试自己发明之前阅读.这是第一个阅读它解释如何分类文本,一步一步,这是一个使用稀疏表示的文本分类的详细示例.
在本节中,要特别注意他们谈论稀疏表示的部分.一般来说,如果你想使用带有线性内核的svm和大量的数据,LinearSVC(基于Liblinear)会更好.
关于你的问题 - 我确信有很多方法可以连接两个稀疏矩阵(顺便说一句,这是你应该在google中寻找的其他方法),这里有一个,但你必须从csr_matrix转换为coo_matrix其他类型的稀疏矩阵:是否有一种连接scipy.sparse矩阵的有效方法?.
编辑:当连接两个矩阵(或矩阵和阵列这是一个1点dimenesional矩阵)的总体思路是连接X1.data并X2.data和操纵其indices与indptrS(或row和col在以下情况下coo_matrix),使其指向正确的位置.一些稀疏表示对于特定操作更好,而对于其他操作更复杂,您应该阅读csr_matrix并查看这是否是最佳表示.但我真的恳请你从我上面发布的那些教程开始.