【发布时间】:2013-09-12 20:14:14
【问题描述】:
我想对函数堆栈跟踪进行一些数据挖掘,为此我使用 libsvm 并以稀疏格式表示数据以提高处理速度,每个堆栈跟踪都是一个实例,变量是函数,即:
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 慢得多
谢谢!
【问题讨论】:
标签: machine-learning format svm sparse-matrix libsvm