【问题标题】:Using What if tool with xgboost将 What if 工具与 xgboost 一起使用
【发布时间】:2019-12-12 17:32:20
【问题描述】:

我正在尝试在我的 xgboost 模型上使用 what if 工具。 但在link 上,我只能找到通过 google AI Platform 使用的 xgboost 示例。有没有什么方法可以在没有 Google AI 平台的情况下在 XGboost 上使用 whatif 工具

我尝试了 tensorflow 和 keras 示例中使用的函数,并使用了函数 set_estimator_and_feature_spec 和 set_compare_custom_predict_fn

bst = xgb.XGBClassifier(
    objective='reg:logistic'
)
bst.fit(x_train, y_train)

test_examples = df_to_examples(df_test)
config_builder = WitConfigBuilder(test_examples).set_custom_predict_fn(xg.predict)
WitWidget(config_builder)

尝试执行运行推理时,显示错误消息cannot initialize DMatrix from a list,我无法执行此操作

【问题讨论】:

  • 我遇到了同样的问题。 XGBoost 模型需要通过 TensorFlow 模型服务器提供服务才能工作

标签: tensorflow google-cloud-platform tensorboard xgboost


【解决方案1】:

经过大量试验和错误后,我终于使用以下代码让它与 XGBoost 一起工作:

# first argument in my case is a Pandas dataframe of all features and the target 'label'; 
# extract just the numpy array with 'values', then convert that to a list
# second argument is the column name as a list
# I use a sklearn pipeline, so here I am just accessing the classifier model which is an XGBClassifier instance
# Wit tool expects a 2D array, where the 1st dimension is each sample, and 2nd dimension is probabilities of
# each class; so use 'predict_proba' over 'predict'
config_builder = (WitConfigBuilder(df_sample.values.tolist(), df_sample.columns.tolist())
    .set_custom_predict_fn(clf['classifier'].predict_proba)
    .set_target_feature('label')
    .set_label_vocab(['No Churn', 'Churn']))

这消除了使用他们建议的辅助函数的需要,并与 Pandas DataFrames 和 Sklearn ML 模型一起开箱即用

【讨论】:

  • 非常感谢,我正在努力让它也能正常工作。这行得通。赞成
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2011-01-08
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多