加快 SVM 评分中的交叉验证

Posted

技术标签:

【中文标题】加快 SVM 评分中的交叉验证【英文标题】:Speed up cross validation in SVM scoring 【发布时间】:2020-12-31 20:28:32 【问题描述】:

我想得到acracy、average_precision、F1、precision、recall和roc_auc分数

我确实意识到使用下面的代码,我会得到average_precision,问题是运行这段代码时需要大约20分钟才能显示结果,有没有更好的方法可以在更短的时间内获得以上所有分数多少时间?

clf_svm_2_scores_avg_precision = cross_val_score(clf_svm_2, np.array(x), data['link'], cv=5, scoring='average_precision')

【问题讨论】:

【参考方案1】:

交叉验证通常很长,因为训练/验证过程通常会进行多次,然后计算得分的平均值。您可以尝试添加参数n_jobs,您必须在其中设置计算机的核心数。

【讨论】:

这很有帮助,谢谢!我还发现,如果你想获得多个分数,你可以传入评分参数中所有分数的列表 现在我得到 UndefinedMetricWarning: F-score 定义不明确,由于没有预测样本而被设置为 0.0。 'precision','predicted',average,warn_for),所有这些的结果都是0,关于如何解决这个问题的任何想法?谢谢 您为解决第二个问题做了什么尝试? 我没有退出,我添加了平均参数并将其设置为“微”,然后将其切换为“宏”,这样我得到了不同的结果,比 0.0 好得多 只需检查y_tru中的所有标签是否都出现在y_pred中,如本文所示:***.com/questions/43162506

以上是关于加快 SVM 评分中的交叉验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 R 的 CMA Bioconductor 包时,解决 SVM 分类交叉验证中的“模型空”错误

sklearn 交叉验证中的自定义评分功能

带有交叉验证的 SVM 分类

libsvm java中的交叉验证准确性

在调整参数时识别交叉验证的 SVM 中的过拟合

检查交叉验证 svm 的敏感性和特异性时出错