grid.py运行多长时间?

时间:2010-03-10 08:59:53

标签: machine-learning gnuplot libsvm

我正在使用libsvm进行二进制分类..我想尝试使用grid.py,因为它据说可以改善结果..我在不同的终端中为五个文件运行此脚本,并且脚本已运行超过12个小时..

现在是我的5个终端的状态:

[root@localhost tools]# python grid.py sarts_nonarts_feat.txt>grid_arts.txt
Warning: empty z range [61.3997:61.3997], adjusting to [60.7857:62.0137]
         line 2: warning: Cannot contour non grid data. Please use "set dgrid3d".
Warning: empty z range [61.3997:61.3997], adjusting to [60.7857:62.0137]
         line 4: warning: Cannot contour non grid data. Please use "set dgrid3d".

[root@localhost tools]# python grid.py sgames_nongames_feat.txt>grid_games.txt
Warning: empty z range [64.5867:64.5867], adjusting to [63.9408:65.2326]
         line 2: warning: Cannot contour non grid data. Please use "set dgrid3d".
Warning: empty z range [64.5867:64.5867], adjusting to [63.9408:65.2326]
         line 4: warning: Cannot contour non grid data. Please use "set dgrid3d".

[root@localhost tools]# python grid.py sref_nonref_feat.txt>grid_ref.txt
Warning: empty z range [62.4602:62.4602], adjusting to [61.8356:63.0848]
         line 2: warning: Cannot contour non grid data. Please use "set dgrid3d".
Warning: empty z range [62.4602:62.4602], adjusting to [61.8356:63.0848]
         line 4: warning: Cannot contour non grid data. Please use "set dgrid3d".

[root@localhost tools]# python grid.py sbiz_nonbiz_feat.txt>grid_biz.txt
Warning: empty z range [67.9762:67.9762], adjusting to [67.2964:68.656]
         line 2: warning: Cannot contour non grid data. Please use "set dgrid3d".
Warning: empty z range [67.9762:67.9762], adjusting to [67.2964:68.656]
         line 4: warning: Cannot contour non grid data. Please use "set dgrid3d".

[root@localhost tools]# python grid.py snews_nonnews_feat.txt>grid_news.txt
Wrong input format at line 494
Traceback (most recent call last):
  File "grid.py", line 223, in run
    if rate is None: raise "get no rate"
TypeError: exceptions must be classes or instances, not str

我已将输出重定向到文件,但这些文件现在不包含任何内容.. 并且,创建了以下文件:

  • sbiz_nonbiz_feat.txt.out
  • sbiz_nonbiz_feat.txt.png
  • sarts_nonarts_feat.txt.out
  • sarts_nonarts_feat.txt.png
  • sgames_nongames_feat.txt.out
  • sgames_nongames_feat.txt.png
  • sref_nonref_feat.txt.out
  • sref_nonref_feat.txt.png
  • snews_nonnews_feat.txt.out( - >为空)

.out文件中只有一行信息..
“.png”文件是一些GNU PLOTS。

但是我不明白上面的GNUplots /警告传达了什么..我应该重新运行它们吗?

任何人都可以告诉我,如果每个输入文件包含大约144000行,这个脚本可能需要多长时间..

谢谢和问候

4 个答案:

答案 0 :(得分:1)

您的数据非常庞大,有144 000行。所以这需要一段时间。我使用了你的大数据,花了一个星期才完成。如果您使用我认为您的图像,因此需要大数据,请在创建数据之前尝试调整图像大小。在调整图像大小时,您应该得到大致相同的结果。

答案 1 :(得分:1)

libSVM常见问题解答了您的问题:

  

问:为什么grid.py/easy.py有时会生成以下警告消息?   警告:空z范围[62.5:62.5],调整为[61.875:63.125]   注意:不能轮廓非网格数据!   没有错,请忽略这条消息。绘制轮廓时,它来自gnuplot。

作为旁注,您可以并行化grid.py操作。 libSVM工具目录README文件就此事说:

并行网格搜索

您可以通过将作业分派到a来执行并行网格搜索 共享相同文件系统的计算机集群。首先,你添加 grid.py中的机器名:

ssh_workers = [“linux1”,“linux5”,“linux5”]

然后设置您的ssh,以便身份验证无需工作 问密码。

如果相同的机器(例如,linux5)可以多次列出 它有多个CPU或有更多的RAM。如果本地机器是 最好的,你也可以放大nr_local_worker。例如:

nr_local_worker = 2

在我的Ubuntu 10.04安装中,grid.py实际上是/usr/bin/svm-grid.py

答案 2 :(得分:0)

我猜grid.py正试图找到C(或Nu)的最佳值?

我无法回答所需的时间,但你可能想尝试这个SVM库,即使它是一个R包:svmpath

正如那个页面所描述的那样,它将计算两类SVM分类器的整个“正则化路径”,其时间大约与使用惩罚参数C(或Nu)的一个值训练SVM所花费的时间相同。

因此,不是为具有值为x的C参数的SVM进行训练和交叉验证,而是针对C,x + 2等的值x + 1再次执行所有这些操作。您可以只训练SVM一次,然后查询其对事后C的不同值的预测性能,可以这么说。

答案 3 :(得分:0)

变化:

if rate is None: raise "get no rate"

grid.py中的第223行:

if rate is None: raise ValueError("get no rate")

另外,请尝试添加:

gnuplot.write("set dgrid3d\n")
grid.py中的这一行之后

gnuplot.write("set contour\n")

这应该会修复您的警告和错误,但我不确定它是否有效,因为grid.py似乎认为您的数据没有rate