私は、ほぼすべての反復で前処理が変化する一連の実験を実行しています。データをフォーマットしたら、scikits (liblinear) から分類器を実行する必要があります。データを svm light 形式で取得できます。それをscikits標準に変換するモジュールがあることを理解しています。問題は、ファイルをディスクに書きたくないということです。私は 48 ギガのメモリを持っているので、むしろメモリ内で変換したいと思っています。
以下は、svm light フォーマットを使用して、stringio オブジェクトに ito を書き込み、その上に svm light loader を sic する例です。残念ながら、ローダーはサイディングを拒否します (別の方法で動作します)。助言がありますか?1000 以上の異なる前処理パイプラインを実行していますが、ディスクへの書き込みを続けることができません。
サンプルの svm light データは次の場所にあります: 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