Python程序将numpy/列表导出为svmlight格式
有没有办法把一个Python数组导出成SVM light格式?
3 个回答
1
svmlight-loader这个模块可以把svmlight格式的文件加载到一个numpy数组里。我觉得目前还没有什么工具可以把numpy数组转换回svmlight文件,不过这个模块可能是扩展功能的一个不错起点。
5
我之前写了一个完全没有优化的脚本,也许它能帮到你!数据和标签必须放在两个不同的numpy数组里。
def save_svmlight_data(data, labels, data_filename, data_folder = ''):
file = open(data_folder+data_filename,'w')
for i,x in enumerate(data):
indexes = x.nonzero()[0]
values = x[indexes]
label = '%i'%(labels[i])
pairs = ['%i:%f'%(indexes[i]+1,values[i]) for i in xrange(len(indexes))]
sep_line = [label]
sep_line.extend(pairs)
sep_line.append('\n')
line = ' '.join(sep_line)
file.write(line)
6
在scikit-learn里有一个功能:
http://scikit-learn.org/stable/modules/generated/sklearn.datasets.dump_svmlight_file.html
这个功能很简单,但它可以同时处理numpy数组和稀疏矩阵(scipy.sparse)。