如何将预测值合并回数据集?

问题描述 投票:0回答:1

我已经用 python 训练了一个 XGboost 模型,并有概率列表作为输出。如何将这些概率引入原始数据集,以便在一个 DF 中拥有数据 + 预测值?假设我原来的原始测试 df 称为 df_raw。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2)
model = XGBClassifier(n_estimators=1500, max_depth=5, n_jobs=-1, min_child_weight=2, 
                      early_stopping_rounds=25)
model.fit(X_train, y_train, eval_set=[(X_test, y_test)])
test_outputs = model.predict_proba(X_test)
python pandas machine-learning scikit-learn
1个回答
0
投票

在返回模型的概率之前,您必须先预测它们。

给定您的代码片段,您正在执行分类任务 - 这样

predict_proba()
返回每个类别的概率(如果是二元分类则为 2) - 所以我添加了
[:, 1]
,这意味着所有行和第二列,这表示给定类别的概率。

# this returns list of features used in a model
features = model.get_booster().feature_names 

# return probability of positive class
df_raw['predictions'] = model.predict_proba(df_raw[features])[:, 1] 
© www.soinside.com 2019 - 2024. All rights reserved.