使用 mulan-1.5.0 如何构造.arff文件
1. 为什么要使用mulan
我用mulan来做多标签数据的分类,但是mulan的输入数据由两个文件控制,一个是data.arff文件,这个文件列出的所有的属性以及这些属性值的类型和他们对应的值。label.xml文件列出了所有属性中属于标签的那部分属性,根据这个文件可以确定哪些属性是特征,哪些属性是标签。一个简单的例子如下:
data.arff
@relation yeast
@attribute feature1 numeric
@attribute feature2 numeric
@attribute feature3 numeric
@attribute feature4 numeric
@attribute label1 {0,1}
@attribute label2 {0,1}
@attribute label3 {0,1}
@attribute label4 {0,1}
@data
0.0937,0.139771,0.062774,0.007698,0,1,1,0
-0.090407,0.021198,0.208712,0.102752,1,1,1,0
-0.085235,0.00954,-0.013228,0.094063,0,1,1,1
我们可以看到这个文件主要分为三部分,@relation指明了数据集名字,@attribute列出了所有的属性,@data列出了属性对应的数据。我们看到属性包含两个部分:(名字,值类型)。通过名字可以完全确定一个属性,通过值的类型可以知道如何对data中的数据进行处理。
label.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> </labels>
xml文件中的label的name和data.arff文件中实际label的名字是对应的。这个文件的格式很简单。
2. 如何构造.arff文件
方法一:使用weka把.csv文件转换为.arff文件
- 首先我们把自己的数据处理成.csv文件,第一行是属性的名字,一下各行是属性对应数值。
- 然后打开weka
- 选择Explorer
- 使用open file...打开自己构造的csv文件
最后点击sava另存为.arff文件即可
- 一些注意事项
使用这种方法,所有属性值的类型会被设置为numeric,如果label值的类型是0,1二值型的,则需要手动修改为{0, 1}。
方法二:直接调用weka的API来生成,参考如下: