python – 将训练数据更改为libsvm格式,以将其传递给libsvm中的g
发布时间:2020-12-20 11:36:00 所属栏目:Python 来源:网络整理
导读:我是 python的新手,我正在尝试使用libsvm.我试图在grid.py的帮助下进行交叉验证.我从数据库中获取数据,因此它不是稀疏形式的.有没有办法按照grid.py中数据格式的要求以稀疏形式转换它.在文件中声明数据集应采用以下格式: label index1:value1 index2:value2
我是
python的新手,我正在尝试使用libsvm.我试图在grid.py的帮助下进行交叉验证.我从数据库中获取数据,因此它不是稀疏形式的.有没有办法按照grid.py中数据格式的要求以稀疏形式转换它.在文件中声明数据集应采用以下格式:
<label> <index1>:<value1> <index2>:<value2> ... 我尝试使用svm_train并在svm_parameter的帮助下生成模型. y,x=[location_list,data_list] prob=svm_problem(y,x) param=svm_parameter('-t 2') model=svm_train(prob,param) 这里我的训练数据是格式 location_list=[8143L,8163L....] data_list=[[ -62L,-72L,-62L,-55L,-75L,-66L,-56L,-57L,-76L,-79L,-68L,-74L,-59L....],[-62L,......] 我尝试将prob作为grid.py中的数据集传递,但是它表示未找到数据集,因此可能应将其写入文件中.或者有什么方法可以将prob变量作为数据集传递给grid.py. 我可以按上面或下面显示的格式获取我的训练数据: [8143L,-59L,...] [8163L,-59L...] ................... 第一个8143和8163是标签(类),其余是功能.所以我的问题是: 1)如何将此数据集转换为稀疏形式并将其保存在文件中以将其传递给grid.py? 2)我可以将prob变量保存在文件中吗? 3)我可以直接传递grid.py中的prob变量而不将其保存到文件中吗? 解决方法
我将回答我自己的问题.我将数据从数据库保存在csv文件中,并使用
csv2libsvm.py将csv转换为libsvm数据:
csv2libsvm.py <input file> <output file> [<label index = 0>] [<skip headers = 0>] 例如: python csv2libsvm.py mydata.csv libsvm.data 0 True 将CSV转换为LIBSVM格式.如果输入文件中没有标签,请指定label index = -1.如果输入文件中有标题,请指定skip headers = 1. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |