- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我按以下方式使用 xgboost
:
from xgboost import XGBClassifier
clf = XGBClassifier()
clf = clf.fit(df_train, df_train_labels, verbose=True)
这很好用。但是,如果我添加一个 early_stopping_rounds
参数,如下所示:
clf = clf.fit(df_train, df_train_labels, early_stopping_rounds=10, verbose=True)
我收到这个错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-16-786925228ae5> in <module>()
9
10
---> 11 clf = clf.fit(df_train, df_train_labels, early_stopping_rounds=10, verbose=True)
12 print("after fit")
13 prediction = np.exp(clf.predict(df_test))
~/anaconda3/envs/python3/lib/python3.6/site-packages/xgboost/sklearn.py in fit(self, X, y, sample_weight, eval_set, eval_metric, early_stopping_rounds, verbose)
443 early_stopping_rounds=early_stopping_rounds,
444 evals_result=evals_result, obj=obj, feval=feval,
--> 445 verbose_eval=verbose)
446
447 self.objective = xgb_options["objective"]
~/anaconda3/envs/python3/lib/python3.6/site-packages/xgboost/training.py in train(params, dtrain, num_boost_round, evals, obj, feval, maximize, early_stopping_rounds, evals_result, verbose_eval, learning_rates, xgb_model, callbacks)
203 evals=evals,
204 obj=obj, feval=feval,
--> 205 xgb_model=xgb_model, callbacks=callbacks)
206
207
~/anaconda3/envs/python3/lib/python3.6/site-packages/xgboost/training.py in _train_internal(params, dtrain, num_boost_round, evals, obj, feval, xgb_model, callbacks)
99 end_iteration=num_boost_round,
100 rank=rank,
--> 101 evaluation_result_list=evaluation_result_list))
102 except EarlyStopException:
103 break
~/anaconda3/envs/python3/lib/python3.6/site-packages/xgboost/callback.py in callback(env)
190 def callback(env):
191 """internal function"""
--> 192 score = env.evaluation_result_list[-1][1]
193 if len(state) == 0:
194 init(env)
IndexError: list index out of range
我查了一下,发现 fit
方法可以传递大量参数,所以我认为我添加 early_stopping_rounds
的事实不应该造成问题。
知道这个错误的原因是什么吗?
最佳答案
出现此错误的原因是您没有指定 eval_set,xgboost 使用该 eval_set 来确定何时停止以进行提前停止。
请参阅有关fit 方法的文档 here .
eval_set (list, optional) – A list of (X, y) tuple pairs to use as a validation set for early-stopping
例如,如果您将数据分成训练集和测试集,您可以使用以下方法:
eval_set = [(X_test, y_test)]
clf = clf.fit(df_train,
df_train_labels,
eval_set=eval_set,
early_stopping_rounds=10,
verbose=True)
关于python - 当我通过 early_stopping_rounds 时 XGBClassifier 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48045263/
希望我读错了,但是在 XGBoost 库中 documentation , 注意到使用 feature_importances_ 提取特征重要性属性很像 sklearn 的随机森林。 但是,出于某种原
后引用this link我能够使用 XGBoost 成功实现增量学习.我想构建一个分类器并需要检查预测概率,即 predict_proba()方法。如果我使用 XGBoost,这是不可能的.在实现时
我正在尝试定义一个名为 XGBExtended 的类扩展类xgboost.XGBClassifier ,xgboost 的 scikit-learn API。我遇到了 get_params 的一些问题
我一直在为 XGBClassifier 的这种怪异行为而烦恼,它应该像 RandomForestClassifier 那样表现得很好: import xgboost as xgb from sklea
我正在使用 XGBClassifier(在 xgboost 中)进行多类分类。执行分类器后,我收到一条错误消息: unexpected keyword argument 'num_class' 导致此
我使用 XGBBoost 训练了一个多标签分类模型,并想在另一个系统中对该模型进行编码。 是否可以在 XGB Booster 中将我的 XGBClassifier 模型的文本输出视为 dump_mod
除了binary:logistic(这是默认的目标函数)之外,是否还有其他内置目标函数可以在xbgoost.XGBClassifier()中使用? ? 最佳答案 binary:logistic 确实是
我在anaconda笔记本下。 我最近安装了 xgboost 但无法访问 XGBClassifier : from xgboost import XGBClassifier 当我只导入 xgboost
我阅读了文档, import xgboost as xgb class xgboost.XGBClassifier(max_depth=3, learning_rate=0.1, n_estimato
我有以下代码: from xgboost import XGBClassifier print(df_train.shape) print(df_train_labels.shape) clf = c
我正在使用 python 以增量方式(逐 block )拟合 xgboost 模型。我遇到了一个使用 xgboost.train 的解决方案,但我不知道如何处理它返回的 Booster 对象。例如,X
来自sklearn-style API of XGBClassifier ,我们可以提供早期停止的评估示例。 eval_set (list, optional) – A list of (X, y)
我尝试设置 XGBoost sklearn API XGBClassifier根据文档使用自定义目标函数 (brier): .. note:: Custom objective functi
我想知道 XGBClassifier 对它所做的每个预测有多大信心。有可能有这样的值(value)吗?或者 predict_proba 是否已经间接地成为模型的置信度? 最佳答案 您的直觉确实是正确的
我正在尝试使用以下改编自 http://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-wit
我按以下方式使用 xgboost: from xgboost import XGBClassifier clf = XGBClassifier() clf = clf.fit(df_train, df
我正在尝试使用 XGBoosts 分类器对一些二进制数据进行分类。当我做最简单的事情并且只使用默认值时(如下) clf = xgb.XGBClassifier() metLearn=Calibrate
在我的 Jupyter 笔记本中,我有: from xgbost import plot_importance plot_importance(model) pyplot.show() 由于模型有很多
我正在尝试为 XGBClassifier 获取最佳超参数,这将导致获得最具预测性的属性。我正在尝试使用 RandomizedSearchCV 通过 KFold 进行迭代和验证。 当我总共运行此过程 5
xgboost 已成功导入,但我无法导入 XGBClassifier。 最佳答案 检查是否xgboost是否正确安装。 安装 xgboost在 anaconda发行版,您可以在 anaconda 命令
我是一名优秀的程序员,十分优秀!