我在试着理解这个XGboost示例。
培训后:
ptrain = bst.predict(dtrain, output_margin=True)他们对测试数据进行预测,但问题是测试数据已经有了所有的标签。如果我的测试数据只有特性而没有标签,我如何修改该示例以进行预测?
另外,我从他们的数据集中观察到:agaricus.txt.train和agaricus.txt.test不需要有相同的特性,甚至每个训练数据都有不同的特性。我以前做过线性回归,我认为训练和测试数据集应该有相同的功能集吗?
发布于 2021-11-01 09:59:38
引用的例子是一个先进的XGBoost概念。注意你的评论-
###
# advanced: start from a initial base prediction
#回想一下,GBM中的每个迭代都是根据上一次迭代的残差构建的。第一次迭代有一个初始的“猜测”。最初的猜测通常是0.5或平均目标(分类中的事件率)。这个例子显示xgboost可以从用户提供的初始猜测(set_base_margin)开始。
我怀疑没有标签的数据是否真的是一种测试。您将如何测试模型在这些数据上的表现是否良好?如果没有答案键,很难知道测试是如何进行的。
对于这些数据,我没有看过这些文件,所以我不知道答案。通常,如果数据丢失,GBM可以将这些值视为缺失值(null,稀疏)。不同的GBM包可能以不同的方式处理丢失的数据。xgboost处理稀疏数据,因此它处理丢失的值。第3.4节和问题是两个参考,但是互联网搜索会给你带来更多。通常会采取Logistic回归步骤来避免丢失数据。其中一些步骤可能仍然适用于GBMs --例如指标变量。
https://datascience.stackexchange.com/questions/103663
复制相似问题