因此,我已经用一些包含一些分类变量的数据训练了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对单个样本进行预测?
答案 0 :(得分:0)
这就是sklearn
API的工作方式。您需要将集合传递给predict
方法。只需将您的样品包装在列表中即可。
model.predict([X.loc[1]])