【发布时间】:2017-09-03 05:27:45
【问题描述】:
我有一个大型数据集(10 000 行),其中每一行(样本)由位列表(~200 000 位)表示。每个位代表样本中特征的缺失或存在.所以,这是一个大型 (10 000 x 200 000) 高维稀疏数据集
为了节省一些内存空间,对于每个样本,我只保存非零位的索引。 具有 7 个特征的向量示例:
[0, 0, 1, 0, 0, 1, 1] ===> [2, 5, 6]
我正在为所有数据集执行此操作。让结果为X(10 000 可变大小向量)。初始数据集3x4的示例:
[[0,0,1,0], [[2],
initial_data= [0,1,1,0], ===> [1,2], = X
[0,1,0,1]] [1,3]]
每一行都标有以下两个标签之一:malignant或benign。
一个线性支持向量分类模型(sklearn.svm.LinearSVC 中的那个)在X 表示的数据上进行训练。知道上述模型接受稀疏输入并且SciPy 中可能有七种表示:
- csc_matrix:压缩稀疏列格式
- csr_matrix:压缩稀疏行格式
- bsr_matrix:块稀疏行格式
- lil_matrix:列表格式列表
- dok_matrix:键格式字典
- coo_matrix:COOrdinate 格式(又名 IJV,三元组格式)
- dia_matrix:对角线格式
哪种表示对于训练模型更有效?以及如何有效地从X 传递到该表示?
【问题讨论】:
标签: python scipy scikit-learn sparse-matrix