来自 sklearn 的 load_svmlight_file() 溢出错误
Overflow error with load_svmlight_file() from sklearn
我创建了一个 SVMlight 文件,其中只有来自 pandas 数据帧的一行:
从 sklearn.datasets 导入 load_svmlight_file
从 sklearn.datasets 导入 dump_svmlight_file<br>
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)
溢出错误:有符号整数大于最大值
如果我使用 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
溢出错误已针对较新的 scikit 版本修复。
我创建了一个 SVMlight 文件,其中只有来自 pandas 数据帧的一行:
从 sklearn.datasets 导入 load_svmlight_file
从 sklearn.datasets 导入 dump_svmlight_file<br>
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)
溢出错误:有符号整数大于最大值
如果我使用 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
溢出错误已针对较新的 scikit 版本修复。