在RUSBoost和SMOTEBoost中提供了csv转换为arff格式的方法,详见CSVtoARFF.m
http://www.mathworks.com/matlabcentral/fileexchange/37315-rusboost
http://cn.mathworks.com/matlabcentral/fileexchange/37311-smoteboost

function r = CSVtoARFF (data, relation, type)
% csv to arff file converter% load the csv data
[rows cols] = size(data);% open the arff file for writing
farff = fopen(strcat(type,'.arff'), 'w');% print the relation part of the header
fprintf(farff, '@relation %s', relation);% Reading from the ARFF header
fid = fopen('ARFFheader.txt','r');
tline = fgets(fid);
while ischar(tline)tline = fgets(fid);fprintf(farff,'%s',tline);
end
fclose(fid);% Converting the data
for i = 1 : rows% print the attribute values for the data pointfor j = 1 : cols - 1if data(i,j) ~= -1 % check if it is a missing valuefprintf(farff, '%d,', data(i,j));elsefprintf(farff, '?,');endend% print the label for the data pointfprintf(farff, '%d\n', data(i,end));
end% close the file
fclose(farff);r = 0;

该方法的不足之处就是要单独提供ARFFheader.txt ,很多情况下,该表头需要人工添加(属性少时),但当属性大时,相对较麻烦,还是可以通过程序循环添加。

下面给出一个可以直接将.mat,.txt和.csv格式转换为weka中的arff格式
http://www.aiseminar.com/bbs/forum.php?mod=viewthread&tid=1058

function Mat2Arff('input_filename','arff_filename')
%
% This function is used to convert the input data to '.arff'
% file format,which is compatible to weka file format ...
%
% Parameters:
% input_filename -- Input file name,only can conversion '.mat','.txt'
% or '.csv' file format ...
% arff_filename -- the output '.arff' file ...% NOTEs:
%The input 'M*N' file data must be the following format:
% M: sampel numbers;
% N: sample features and label,"1:N-1" -- features, "N" - sample label ...% 读取文件数据 ...
if strfind(input_filename,'.mat')
matdata = importdata(input_filename);
elseif strfind(input_filename,'.txt')
matdata = textread(input_filename) ;
elseif strfind(input_filename,'.csv')
matdata = csvread(input_filename);
end;[row,col] = size(matdata);
f = fopen(arff_filename,'wt');
if (f < 0)
error(sprintf('Unable to open the file %s',arff_filename));
return;
end;
fprintf(f,'%s\n',['@relation ',arff_filename]);
for i = 1 : col - 1
st = ['@attribute att_',num2str(i),' numeric'];
fprintf(f,'%s\n',st);
end;
% 保存文件头最后一行类别信息
floatformat = '%.16g';
Y = matdata(:,col);
uY = unique(Y); % 得到label类型
st = ['@attribute label {'];
for j = 1 : size(uY) - 1
st = [st sprintf([floatformat ' ,'],uY(j))];
end;
st = [st sprintf([floatformat '}'],uY(length(uY)))];
fprintf(f,'%s\n\n',st);
% 开始保存数据 ...
labelformat = [floatformat ' '];
fprintf(f,'@data\n');
for i = 1 : row
Xi = matdata(i,1:col-1);
s = sprintf(labelformat,Y(i));
s = [sprintf([floatformat ' '],[; Xi]) s];
fprintf(f,'%s\n',s);
end;
fclose(f);

最后给出关于weka数据处理的简明介绍。
数据挖掘简述和weka介绍–数据挖掘学习和weka使用(一)
输入数据与ARFF文件–数据挖掘学习和weka使用(二)
简单总结一下:
weka中的arff格式数据是由两部分组成:头部定义和数据区。
头部定义包含了关系名称(relation name)、一些属性(attributes)和对应的类型,如

   @RELATION iris@ATTRIBUTE sepallength  NUMERIC @ATTRIBUTE sepalwidth   NUMERIC @ATTRIBUTE petallength  NUMERIC @ATTRIBUTE petalwidth   NUMERIC @ATTRIBUTE class        {Iris-setosa,Iris-versicolor,Iris-virginica}

NUMERIC说明其为数字型,属性class的取值是限定的,只能是Iris-setosa,Iris-versicolor,Iris-virginica中的一个。数据类型还可以是string和data数据区有@data开头,如:

@DATA 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 4.6,3.1,1.5,0.2,Iris-setosa 5.0,3.6,1.4,0.2,Iris-setosa 5.4,3.9,1.7,0.4,Iris-setosa 4.6,3.4,1.4,0.3,Iris-setosa 5.0,3.4,1.5,0.2,Iris-setosa 4.4,2.9,1.4,0.2,Iris-setosa 4.9,3.1,1.5,0.1,Iris-setosa

因此,完整的一个arff文件如下:

@RELATION iris@ATTRIBUTE sepallength  NUMERIC
@ATTRIBUTE sepalwidth   NUMERIC
@ATTRIBUTE petallength  NUMERIC
@ATTRIBUTE petalwidth   NUMERIC
@ATTRIBUTE class        {Iris-setosa,Iris-versicolor,Iris-virginica}@DATA
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
5.0,3.4,1.5,0.2,Iris-setosa
4.4,2.9,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa

更多细节可查看
http://weka.wikispaces.com/ARFF+%28stable+version%29#Sparse%20ARFF%20files

weka使用自己的文件格式,叫做ARFF,如果想从*matlab和Weka之间相互转换,这里有现成的package*:

http://www.mathworks.com/matlabcentral/fileexchange/21204-matlab-weka-interface

不要以为下载下来就能用,你会在如下地方报错:

if(~wekaPathCheck),wekaOBJ = []; return,endimport weka.core.converters.ArffLoader;import java.io.File;

Tricky的事情就是得把weka.jar加入到matlab的classpath.txt列表。classpath.txt在哪儿?到matlab的command窗口敲:

which classpath.txt
D:\CMWang\MATLABR2014b\toolbox\local\classpath.txt

然后就是到classpath.txt里加入一行,weka.jar的绝对路径,例如:

C:\Program Files\Weka-3-8 \weka.jar

这样就配置完毕了。
该部分参考 http://blog.sciencenet.cn/blog-248606-433590.html

.mat,.txt,.csv 数据转换为weka中的arff格式及matlab和Weka之间相互转换格式相关推荐

  1. python将csv转字典_python – 将CSV数据转换为字典中的列表

    您需要使用名称作为键并将行的切片附加为值,使用normal或defaultdict将没有顺序: import csv from collections import defaultdict with ...

  2. 将txt文本数据转换为json对象

    nodejs 将txt文本数据转换为json对象 1.准备 文件夹准备如下: 2.实现 a.txt中的内容: 小王,19 小李,20 小陈,21 work.js中的内容: // 导入fs.path c ...

  3. txt的数据导入excel中身份证或银行卡显示成科学计数如何解决

    用excel自带的"数据"->"自文本"将txt的数据导入excel中,如果数字特别长比如身份证或者银行卡会显示成科学计数法,如下: 借助sqlcel我们 ...

  4. txt文本文件数据转ArcGIS中的tif文件

    txt 文本文件数据转 ArcGIS 中的 tif 文件 txt文件容易读写,但可视性不好: tif文件在ArcGIS上显示具有独特优势,但打开属性表是多有不变 以广东省某蒸散发数据为依据,将网格对应 ...

  5. js mysql json字符串转数组中_php数据库数据转换为js中的json对象

    / 1.在company数据user表中取出10条数据,保存为数组 2.在将数组转化为json格式,传递给js 3.用json解析器将传递过来的json字符串转化为json对象, 4.用documen ...

  6. java改写weka中的算法_用Eclipse在Weka中嵌入新算法

    本文介绍添加一个新算法到Weka集成环境中的过程,并能在GUI中运行并显示其结果.想做到这一点有两种方法,一是用ANT命令生成新的weka.jar(稍后写教程),二是用IDE(Eclipse或NetB ...

  7. python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为lis ...

  8. weka中的arff格式数据

    1.数据格式主要有三个要求,@relation ,@attribute,@data这三个是要有的,文件的名称,实例的属性,以及实例属性的对应值 @relation house @attribute h ...

  9. Java根据txt文件数据得到list_java中如何将一个txt文件中的数字读取到一个ArrayList集合中?...

    展开全部 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java ...

最新文章

  1. 为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow?
  2. NSURLConnection实现文件上传和AFNetworking实现文件上传
  3. 微信小程序扫码的代码及获取二维码的url地址
  4. P4551 最长异或路径
  5. cocos2dx对于强大的RichText控制
  6. solr集群solrCloud的搭建
  7. Chrome如何下载网页视频
  8. HOW TO:枚举网络所有打印机
  9. ui自动化模拟键盘按键
  10. 奥城大学计算机专业,[美国金融硕士排名2018]2018年美国硕士双录取大学名单
  11. springboot基于java的邮件收发管理系统毕业设计源码101025
  12. 学习笔记(02):英特尔® OpenVINO™工具套件初级课程-如何加速视频处理进程?
  13. 统一检测和分割任务!港科大清华IDEA提出基于Transformer统一目标检测与分割框架Mask DINO,效果SOTA!...
  14. css鼠标经过字体抖动,jQuery+css3实现文字跟随鼠标的上下抖动
  15. 迪士尼超级计算机多少钱,上海迪士尼乐园公布票务调整方案,明年1月9日起实行新票价...
  16. hdu-7113 Matrix 组合数学(计算贡献
  17. RGB888 和 RGB565
  18. SFFAI召集人蓄势待发!你准备好了吗?
  19. 计算机 发声原理,模拟电子琴演奏程序设计。微机中扬声器控制发声原理如练习图10.1所示,其中用到8255与8253两个芯片。...
  20. 软件测试梳理 第九节 缺陷和缺陷报告

热门文章

  1. 大学c语言下上机考试题,计算机考试二级C语言上机试题下[5]
  2. python关闭线程daemon_python中threading开启关闭线程操作
  3. java nio ssl_java连接MQTT+SSL服务器
  4. PAT_B_1009_Java(20分)
  5. deepfake 图片_DeepFake克星来了!简单2步算法,造假图像无处可逃
  6. ee2prom擦除 c语言,浮点数在E2PROM中的存取方法.doc
  7. 仿生蛇类机器人 特点_今日项目:功能表面仿生激光强化及其修复再造技术
  8. python源码多平台编译_ubuntu编译python源码的坑
  9. zbrush 添加纹理贴图_zbrush零基础新手必看入门讲解
  10. 『数据库』数据库编程(概念性的东西,应用一般,甚至有点过时,用来考试)