【发布时间】:2012-11-19 20:08:19
【问题描述】:
我正在进行大量实验,其中预处理几乎在每次迭代中都会发生变化。一旦我有了某种格式的数据,我需要从 scikits (liblinear) 运行一个分类器。我可以将数据转换为 svm light 格式。我知道有一个模块可以将其转换为 scikits 标准。问题是我不想将文件写入磁盘。我有 48 gigs 的内存,更愿意在内存中进行转换。
下面是一个示例,我采用 svm light 格式,将 ito 写入 stringio 对象,然后在其上使用 sic 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
【问题讨论】:
标签: python file machine-learning svm