小编Lan*_*mes的帖子

Xgboost:bst.best_score、bst.best_iteration 和 bst.best_ntree_limit 有什么区别?

当我使用 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() 将返回上次迭代的模型,而不是最好的模型。预言

经过训练或加载的模型可以对数据集进行预测。

# 7 entities, each contains 10 features 
data = np.random.rand(7, 10) 
dtest = xgb.DMatrix(data) 
ypred = bst.predict(dtest)
Run Code Online (Sandbox Code Playgroud)

如果在训练期间启用了提前停止,您可以使用 bst.best_ntree_limit 从最佳迭代中获得预测:

ypred = bst.predict(dtest,ntree_limit=bst.best_ntree_limit)

提前致谢。

python machine-learning xgboost

15
推荐指数
1
解决办法
3693
查看次数

powershell '<' 运算符保留供将来在 Java 中使用

我已经阅读了很多关于这个问题的答案,但没有发现关于两个文件之间的比较,实际上这是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)

java algorithm powershell

3
推荐指数
1
解决办法
6184
查看次数

python scrapy shell异常:地址"'http:"未找到:[Errno 11001] getaddrinfo失败

实际上它是提取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中的异常(很可能在解释器关闭期间引发):

详细信息如下:[scrapy shell例外] 我搜索stackoverflow并找到类似问题的问题 ,一个答案是尝试另一个终端,我尝试了Pycharm的终端,但它失败了同样的例外.

PS:我在Windows和Python 2.7.12,Anaconda 4.0.0(64位)上工作

我对scrapy很新,所以对任何帮助表示赞赏,谢谢.

python shell scrapy

1
推荐指数
1
解决办法
1021
查看次数