我想对函数stacktraces进行一些数据挖掘,为此我使用libsvm并以稀疏格式表示数据以提高处理速度,每个stacktrace都是一个实例,变量是函数,即:
class1 F1,F2,F1,F456,F3
class2 F4,F4,F4,F56,F3000
...
在某个地方,我看到的独特功能的注册表不断增长,这就是功能索引的来源。理想情况下,我想使用稀疏格式表示上述实例,并划分为 5 个变量,如下所示:
1 1:1 2:1 1:1 456:1 3:1
2 4:1 4:1 4:1 56:1 3000:1
这在 libsvm 的格式中是不可能的,所以我将总函数注册表的长度添加到每个组以避免索引冲突,如果我们假设总共有 3000 个函数:
1 1:1 3002:1 6001:1 9456:1 12003:1, this is how the first instance looks now
如果函数的数量没有改变,这是可行的,但事实并非如此,因为每次添加新函数,都必须重做整个事情。
我使用的是稀疏格式,但也欢迎对其他格式提出建议,我能够使用 Weka 以密集格式使用数据,使用函数名称作为变量,它可以工作,只是比使用 libsvm 慢得多
谢谢!