将UCI的Iris Data转换成LIBSVM格式(Java)
2015-04-10 10:42
513 查看
<pre name="code" class="java"> public class IrisUCI2LibSVM { static BufferedReader br = null; //read the file to bufferedreader static int classification = 0; //classification number static FileWriter fw = null; //put the result to file public static void main(String[] args) { // TODO Auto-generated method stub String sourceFileName = "iris.data.set.txt"; String destFileName = "iris.libsvm.txt"; uci2Libsvm(sourceFileName, destFileName); } public static void uci2Libsvm(String sourceFileName,String destFileName){ String strline = null; //whether the file is exists File file = new File(sourceFileName); if(!file.exists()){ System.out.println("file not exists!"); return; } try { br = new BufferedReader(new FileReader(sourceFileName)); fw = new FileWriter(destFileName); int i = 1; //the index of the libsvm format file while((strline = br.readLine().trim()) != null){ String[] elements = strline.split(","); if(elements.length < 4){ break; } if(elements[4].equals("Iris-setosa")){ classification = 1; }else if(elements[4].equals("Iris-versicolor")){ classification = 2; }else if(elements[4].equals("Iris-virginica")){ classification = 3; } String result = classification + " " + i++ + ":" + elements[0] + " " + i++ + ":" + elements[1] + " " + i++ + ":" + elements[2] + " " + i + ":" + elements[3]; i = 1; System.out.println(result); fw.write(result.trim() + "\n"); } fw.close(); br.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ } System.out.println("succeed!"); } }
如何验证是否转换正确呢?
使用libsvm自带的格式检查checkdata.py(libsvm-3.20\tools\checkdata.py)进行验证,该文件是用Python写的,所以验证的前提是你的电脑上首先安装Python。
D:\Python27>python d:\libsvm-3.20\tools\checkdata.py d:\libsvm-3.20\tools\iris.libsvm.txt
No error.
说明转换成功!
相关文章推荐
- EXTjs 从Java后端传来的Data数据 grid动态转换为标准格式的时间
- java.sql.SQLDataException: ORA-01830: 日期格式图片在转换整个输入字符串之前结束
- 转换 xml 格式,默认 utf-8 , 要输出成 gbk ,并保存 (java )
- 用java程序调用ffmpeg执行视频文件格式转换flv
- java类中calendar与data转换
- java中字符串转换成时间格式总结
- java中字符串转换成时间格式总结
- Java中将数据由UTF8转换成GB2312格式
- 用java程序调用ffmpeg执行视频文件格式转换flv
- java中将数字转换成带千分位格式
- Java日期转换SimpleDateFormat格式大全
- java转换长日期格式
- 基于java的图片文件格式转换和线性缩放
- java 数值类型转换时,如果格式不对
- java使用DateFormat类,转换时间格式
- 基于java的图片文件格式转换和线性缩放
- Java中将数据由UTF8转换成GB2312格式
- 基于java的图片文件格式转换和线性缩放
- 基于java的图片文件格式转换和线性缩放-Java基础-Java-编程开发
- 在JAVA中将日期格式的string转换为Date