当我使用 xgboost 训练我的数据时2-cates classification problem,我想使用提前停止来获得最佳模型,但我对在我的预测中使用哪一个感到困惑,因为提前停止将返回 3 个不同的选择。例如,我应该使用
preds = model.predict(xgtest, ntree_limit=bst.best_iteration)
Run Code Online (Sandbox Code Playgroud)
或者我应该使用
preds = model.predict(xgtest, ntree_limit=bst.best_ntree_limit)
Run Code Online (Sandbox Code Playgroud)
还是两者都对,它们应该适用于不同的情况?如果是这样,我如何判断使用哪一个?
这是xgboost文档的原始引用,但它没有给出原因,我也没有找到这些参数之间的比较:
提前停止
如果你有一个验证集,你可以使用提前停止来找到最佳的提升轮数。提前停止至少需要在 evals 中设置一组。如果有多个,它将使用最后一个。
train(..., evals=evals, early_stopping_rounds=10)
该模型将一直训练,直到验证分数停止提高。验证错误至少需要每 early_stopping_rounds 减少一次才能继续训练。
如果发生提前停止,模型将具有三个附加字段:bst.best_score、bst.best_iteration 和 bst.best_ntree_limit。请注意,train() 将返回上次迭代的模型,而不是最好的模型。预言
经过训练或加载的模型可以对数据集进行预测。
Run Code Online (Sandbox Code Playgroud)# 7 entities, each contains 10 features data = np.random.rand(7, 10) dtest = xgb.DMatrix(data) ypred = bst.predict(dtest)如果在训练期间启用了提前停止,您可以使用 bst.best_ntree_limit 从最佳迭代中获得预测:
ypred = bst.predict(dtest,ntree_limit=bst.best_ntree_limit)
提前致谢。
我已经阅读了很多关于这个问题的答案,但没有发现关于两个文件之间的比较,实际上这是Algorithms based on BinarySearch一书的样本,这里是源代码
import java.util.Arrays;
import edu.princeton.cs.algs4.*;
public class prac1_1_23{
public static boolean BinaryLookup(int key, int[] arr) {
int low = 0;
int high = arr.length - 1;
while(low <= high) {
int mid = low + ((high - low) >> 1);
if(key < arr[mid])
high = mid - 1;
else if(key > arr[mid])
low = mid + 1;
else
return true;
}
return false;
}
public static void main(String[] args) {
char symbol = '-';
int[] …Run Code Online (Sandbox Code Playgroud) 实际上它是提取scrapy 数据的scrapy教程样本.当我在Windows cmd中键入命令时,一切顺利,直到scrapy shell的样本:
scrapy shell 'http://quotes.toscrape.com/page/1/'
Run Code Online (Sandbox Code Playgroud)
我有一个例外
twisted.internet.error.DNSLookupError: DNS lookup failed: address "'http:" not found: [Errno 11001] getaddrinfo failed.
Run Code Online (Sandbox Code Playgroud)
线程Thread-1中的异常(很可能在解释器关闭期间引发):
详细信息如下:[
我搜索stackoverflow并找到类似问题的问题
,一个答案是尝试另一个终端,我尝试了Pycharm的终端,但它失败了同样的例外.
PS:我在Windows和Python 2.7.12,Anaconda 4.0.0(64位)上工作
我对scrapy很新,所以对任何帮助表示赞赏,谢谢.