Python - 我得到了包含 XGBoost 模型的 pickle 文件。如何找到文件的详细信息?

Python - I was given pickle files that contain XGBoost models. How do I find the details of the file?

对于一个工作项目,我得到了两个 pickle 文件。有人告诉我这些泡菜有 XGBoost 模型,所以我安装了 XGBoost。我能够使用此命令加载它们

import pickle
filename = 'model.pickle'
loaded_model = pickle.load(open(filename, 'rb'))
print(type(loaded_model))

产生

<class 'xgboost.sklearn.XGBClassifier'>

但是,我不知道 运行 此模型所需的输入名称。我从这里的另一个 XGBoost 教程中找到了这个命令:https://machinelearningmastery.com/save-gradient-boosting-models-xgboost-python/:

result = loaded_model.score(X_test, y_test)

但这不起作用,因为 X_test 和 y_test 未定义。我需要找出 X_test 和 y_test 集的实际名称以及 pickle 的包含。另外,我如何探索这个 pickle 的内容?我想查看此 XGBoost pickle 中的所有内容。

  1. X_test 和 y_test 没有定义,因为你没有定义它们。您有 2 个 pickle 文件,其中包含 xgboost 对象而不是测试功能和测试标签。 如果您想 "test" 您收到的模型,请创建 X_test 和 y_test 并测试您的模型。
  2. 如果您想了解有关您收到的 xgboost 对象的更多信息,我建议使用可以找到的 xgboost API here。例如,loaded_model.feature_names 将 return 特征名称列表(如果已定义)。 loaded_model.dump_model 将保存一个包含所有树的 .txt 文件。
  3. Here 您可以阅读 Scikit-Learn API,更具体地说,xgboost.XGBClassifier class.