我正在运行一堆实验,其中几乎每次迭代的预处理都会发生变化。一旦我获得了某种格式的数据,我需要从 scikits (liblinear) 运行一个分类器。我可以将数据转换为 svm light 格式。我知道有一个模块可以将其转换为 scikits 标准。问题是我不想将文件写入磁盘。我有 48 gigs 的内存,更愿意在内存中进行转换。
下面是一个示例,我采用 svm light 格式,将 ito 写入 stringio 对象,然后在其上使用 svm light loader。不幸的是,装载机拒绝被切碎(它的工作原理是其他的)。有什么建议么?我正在运行超过 1000 个不同的预处理管道,但我无法继续写入磁盘。
样本 svm 光数据位于: http ://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/a1a
我的代码
import numpy as np
from sklearn.datasets import svmlight_format
import cStringIO
bufFile = cStringIO.StringIO()
with open('C:/Users/theDesktop/Desktop/sampleData.txt') as a:
p = a.readlines()
a.close()
bufFile.writelines(p)
X_train, y_train = svmlight_format.load_svmlight_file(bufFile)
我的错误:
Traceback (most recent call last):
File "C:\Users\theDesktop\Desktop\module1.py",
line 25, in <module> X_train, y_train=svmlight_format.load_svmlight_file(bufFile)
File "C:\Python27\lib\site-packages\sklearn\datasets\svmlight_format.py",
line 97, in load_svmlight_file zero_based))
File "C:\Python27\lib\site-packages\sklearn\datasets\svmlight_format.py",
line 177, in load_svmlight_files for _, indices, _, _ in r):
File "C:\Python27\lib\site-packages\sklearn\datasets\svmlight_format.py",
line 177, in <genexpr> for _, indices, _, _ in r):
File "C:\Python27\lib\site-packages\numpy\core\fromnumeric.py",
line 1895, in amin return amin(axis, out)
ValueError: zero-size array to minimum.reduce without identity