加快 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 评分中的交叉验证的主要内容,如果未能解决你的问题,请参考以下文章