pandas データフレームから 1 行だけで SVMlight ファイルを作成しました。
from sklearn.datasets import load_svmlight_file
from sklearn.datasets import dump_svmlight_file
dump_svmlight_file(toy_data.drop(["Output"], axis=1),toy_data['Output'],"../data/oneline_pid.txt", query_id=toy_data['EventID'])
ファイルの結果は次のようになります。
0 qid:72048431380967004 0:1440446648 1:72048431380967004 2:236784985 3:1477 4:26889 5:22 6:36685162242798766 8:1919947 10:22 11:48985 12:1840689
でファイルを読み込もうとするとquery_id=True
、オーバーフロー エラーが発生します。
train = load_svmlight_file("../data/oneline_pid.txt", dtype=np.uint64, query_id=True)
OverflowError: 符号付き整数が最大値を超えています
ファイルをロードするとquery_id=False
、エラー メッセージは表示されませんが、query_id の値が間違っています。これは出力です:
[[ 1440446648 72048431380967008 236784985 1477
26889 22 36685162242798768 0
1919947 0 22 48985
1840689]]
72048431380967004
として表示され72048431380967008
ます。
このエラーを回避するにはどうすればよいですか。最大値は でnp.uint64
ある9223372036854775807
ため、オーバーフロー エラーは発生しません。
データ型としてもロードしようとしましnp.int64
たが、出力は同じです。
scikit-learn バージョン: 0.16.1 OS X Yosemite 10.10.5