在多标签分类中,准备mulan开源软件所需要的.arff和.xml数据的方法

前端之家收集整理的这篇文章主要介绍了在多标签分类中,准备mulan开源软件所需要的.arff和.xml数据的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近在工作中需要学习多标签分类的算法,发现了mulan这个开源软件很不错,这个软件是用java编写的,同时也是建立在Weka之上的。这个软件需要输入两个文件,一个是.arff文件,一个是.xml文件

预备软件:matlab和Weka,;

.arrf文件的格式如下:

@relation MultiLabelExample

@attribute feature1 numeric
@attribute feature2 numeric
@attribute feature3 numeric
@attribute label1 {0,1}
@attribute label2 {0,1}
@attribute label3 {0,1}
@attribute label4 {0,1}
@attribute label5 {0,1}

@data
2.3,5.6,1.4,1,0
2.0,1.3,2.6,1

.xml文件的格式如下:

<?xml version="1.0" encoding="utf-8"?>
<labels xmlns="http://mulan.sourceforge.net/labels">
<label name="label1"></label>
<label name="label2"></label>
<label name="label3"></label>
<label name="label4"></label>
<label name="label5"></label>
</labels>

生成这两种文件方法如下:

(1)首先采用matlab中自带函数csvwrite('filename.csv',fliename)生成.csv文件,其中filename.csv是你要生成的文

件名字,filename是在matlab中的矩阵名字,矩阵的每行代表一个样本;例如:

csvwrite('MultiLabelExample.csv',MultiLabelExample),

MultiLabelExample=[2.3,0;2.0,1],假设只有两个样本

(2)将生成的filename.csv用excel或者EditPlus打开将相应的属性名填写好,采用都好隔开(最好是采用程序修改

如果数据的维数很高的时候,采用手动修改工作量很大);例如:

feature1,feature2,featuer3,label1,label2,label3,label4,label5(注意这些名字都可以根据自己需要进行修改

2.3,0

2.0,1

(3)运行Weka程序,选择Simple SLI按钮,在出现的对话框最下面一行输入:

weka.core.converters.CSVLoaderMultiLabelExample.csv >MultiLabelExample.arff,结果如下:

@relation MultiLabelExample

@attribute feature1 numeric
@attribute feature2 numeric
@attribute feature3 numeric
@attribute label1 numeric
@attribute label2 numeric
@attribute label3 numeric
@attribute label4 numeric
@attribute label5 mumeric

@data
2.3,0
2.0,1

手动修改label1-5 后边的“numeric”为{0,1},结果如下:(实际情况应该是自动生成下面的结果的,但是本人始终

没有实现,因此手动修改

@relation MultiLabelExample

@attribute feature1 numeric
@attribute feature2 numeric
@attribute feature3 numeric
@attribute label1 {0,1

这样.arff文件已经完成的了。

(4)对于.xml格式文件,本人没有找到更好的方法,采用手动修改很容易就可以实现。

<?xml version="1.0" encoding="utf-8"?>
<labels xmlns="http://mulan.sourceforge.net/labels">
<label name="label1"></label>
<label name="label2"></label>
<label name="label3"></label>
<label name="label4"></label>
<label name="label5"></label>
</labels>


这个文件中可以改变的有label1-label5这些名字(我尝试过),注意和.arff文件中的相应名字对应上,否者会出错

至此:mulan软件需要的两个输入文件就准备好了,如何进行实验将在下一章阐述。


—————本方法仅供参考,如果有不足之处请指正。

猜你在找的XML相关文章