Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 用libsvm表示要使用的数据(稀疏或非稀疏)_Machine Learning_Format_Svm_Sparse Matrix_Libsvm - Fatal编程技术网

Machine learning 用libsvm表示要使用的数据(稀疏或非稀疏)

Machine learning 用libsvm表示要使用的数据(稀疏或非稀疏),machine-learning,format,svm,sparse-matrix,libsvm,Machine Learning,Format,Svm,Sparse Matrix,Libsvm,我想对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:

我想对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的格式中是不可能的,因此我将total functions注册表的长度添加到每个组中,以避免索引冲突,如果我们假设总共有3000个函数:

1 1:1 3002:1 6001:1 9456:1 12003:1,  this is how the first instance looks now
如果函数的数量没有改变,这是可行的,但事实并非如此,因为每次都会添加新的函数,因此必须重做整个过程

我使用的是稀疏格式,但也欢迎对其他格式的建议,我能够使用密集格式的Weka数据,使用函数名作为变量,并且它可以工作,只是比libsvm慢了很多

谢谢

您几乎没有选择:

a) 每次都要重复整个过程(我认为为libsvm生成输入比libsvm本身更快:)

b) 第一件事使用偶数,另一件事使用奇数。因此,您的示例如下所示:

1 2:1 3:1 1:1 911:1 5:1
这避免了碰撞,您不必重做整件事:)

谢谢@usamec,a)这是我目前正在做的,不确定我是否能得到b)但是?我认为一个更普遍的问题是,我如何以libsvm稀疏格式表示重复的特征,例如,a B a C。在上一个示例中,我使用了5个不同的属性,不确定奇数/偶数索引会有多大帮助?我在考虑采用正常的密集格式,使其为1:2 2:3 3:2 4:2 5:3000。。。