grid.py 运行需要多长时间?

问题描述 投票:0回答:4

我正在使用 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。

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

如果每个输入文件包含大约 144000 行,此脚本可能需要多少时间?

machine-learning gnuplot libsvm
4个回答
1
投票

您的数据非常庞大,有 144 000 行。所以这需要一些时间。我使用了像你这样的大数据,花了一周的时间才完成。如果您使用图像(我想您就是这样),因此数据很大,请尝试在创建数据之前调整图像大小。调整图像大小后,您应该会得到大致相同的结果。


1
投票

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

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

顺便说一下,您可以并行化 grid.py 操作。 libSVM 工具目录 README 文件对此有这样的说法:

平行网格搜索

您可以通过将作业分派到 共享相同文件系统的计算机集群。首先,您添加 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


0
投票

我猜

grid.py
正在尝试寻找C(或Nu)的最佳值?

我不知道需要多长时间,但你可能想尝试这个 SVM 库,即使它是一个 R 包:svmpath

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

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


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

© www.soinside.com 2019 - 2024. All rights reserved.