如何用CatBoost预测单个样本?

时间:2019-11-30 00:13:48

标签: python prediction catboost

因此,我已经用一些包含一些分类变量的数据训练了CatBoost分类器模型。问题是我想对单个样本进行预测,但总是出错。像这样:

# X is a dataframe with 23 vars, 14 of which are categorical
model.predict(X.loc[1])  # This gives the error below

CatBoostError: Invalid cat_features[1] = 1 value: index must be < 1.


# I've tried reshaping the series but this raises another error
model.predict(X.loc[1].values.reshape(1, -1)) # This form works with LightGBM

CatBoostError: 'data' is numpy array of floating point numerical type, it means no categorical 
features, but 'cat_features' parameter specifies nonzero number of categorical features

但是,如果我尝试两个或多个示例,则效果很好

model.predict(X.iloc[:2,:]) 

array([1., 0])

我不知道如何做出一个简单的预测,我还没有找到有关此的信息。

¿如何使用catboost对单个样本进行预测?

1 个答案:

答案 0 :(得分:0)

这就是sklearn API的工作方式。您需要将集合传递给predict方法。只需将您的样品包装在列表中即可。

model.predict([X.loc[1]])