1、目的是:python使用libsvm处理数据
2、问题是:txt不能更改为无bom的utf-8,如果使用python的open打开也必须指定encoding=utf-8或者rb,而且第一个数据前面都有\ufeff。
但是libsvm不能指定第二个参数,永远报错_UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence。
3、尝试过的方法有:直接另存为、使用notepad++,eclipse等插件都没用;尝试运行代码判断bom删除文本前3个字符也无用。。。
希望找到一个不复杂又可行的方法_感谢!!!
txt如何去除bom以用作libsvm的数据集
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- Shirleylibo 2018-01-17 06:37关注
libsvm处理数据的步骤
这里进行处理的训练集是train.1.txt 测试集是 test.1.txt
1. 利用svm-scale 进行数据缩放的处理(对训练集和测试集进行缩放的处理)
svm-scale -l -1 -u 1 train.1.txt > train1.txt
svm-scale -l -1 -u 0 test.1.txt > test1.txt
这里是将train.1.txt和test.1.txt中的数据压缩到了-1到1的范围,然后将压缩后的文件存储为train1.txt,test1.txt
2. 利用grid.py 训练得到最佳的c和g
python grid.py train1.txt 在进行了训练之后再控制台会给出三个值,分别为c,g,精确度
3.生成训练的模板
svm-train -c xxx -g xxx train1.txt train1.model
将通过训练train1.txt得到的模板存储为train1.model
4. 获得正确率
svm-predict test1.txt train1.model test1.out
通过传入测试集和训练集的模板生成一个out文件同时获得了预测的正确率。解决 无用评论 打赏 举报
悬赏问题
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
- ¥20 matlab yalmip kkt 双层优化问题
- ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
- ¥88 实在没有想法,需要个思路
- ¥15 MATLAB报错输入参数太多
- ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件