当一个数据集中很多instance中的很多属性值是0时,这个数据集就会以稀疏矩阵的形式存储。这个过程主要是通过将Instance转换为SparseInstance实现的,SparseInstance是Instance的子类。
对于一个值为{0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,0,0}的instance,其对应的SparseInstance为{9 1, 18 2},也就是下标为9的属性值为1,下标为18的属性值为2,其他属性值均为0。
Instance转换为SparseInstance
即arff数据的稀疏化,主要是使用SparseInstance类来对Instance进行处理。
可以参考:
https://wenku.baidu.com/view/f1e95fd3d15abe23482f4d71.html
SparseInstance转换为Instance
WEKA自身是可以很好的将稀疏矩阵形式的arff文件读取为正常格式的arff文件,且能正常运行。但是如果在其他平台或者只想使用正常格式的arff文件,而手中只有稀疏矩阵形式的arff文件,则可以使用WEKA中的SparseToNonSparse过滤器将稀疏矩阵形式的arff文件转换为正常格式的arff文件。