我正在尝试从一个泡菜文件中加载一个XGBClassifier到我的流光应用程序中。
当我加载它并尝试预测新的输入值时,它会抛出错误:
XGBoostError: [11:25:40] c:\users\administrator\workspace\xgboost-win64_release_1.6.0\src\data\array_interface.h:462: Unicode-3 is not supported.整个追溯过程是:
2022-07-02 11:25:40.046 Uncaught app exception
Traceback (most recent call last):
File "C:\Users\\Anaconda3\lib\site-packages\streamlit\scriptrunner\script_runner.py", line 554, in _run_script
exec(code, module.__dict__)
File "temp.py", line 250, in <module>
st.write(clf.predict(feat_list))
File "C:\Users\\Anaconda3\lib\site-packages\xgboost\sklearn.py", line 1434, in predict
class_probs = super().predict(
File "C:\Users\\Anaconda3\lib\site-packages\xgboost\sklearn.py", line 1049, in predict
predts = self.get_booster().inplace_predict(
File "C:\Users\\Anaconda3\lib\site-packages\xgboost\core.py", line 2102, in inplace_predict
_check_call(
File "C:\Users\\Anaconda3\lib\site-packages\xgboost\core.py", line 203, in _check_call
raise XGBoostError(py_str(_LIB.XGBGetLastError()))
xgboost.core.XGBoostError: [11:25:40] c:\users\administrator\workspace\xgboost-win64_release_1.6.0\src\data\array_interface.h:462: Unicode-3
is not supported.我以这样的方式加载模型:
clf = pickle.load(open('xgb.pkl', "rb"))或
clf = xgboost.XGBClassifier(tree_method ="hist", enable_categorical=True)
clf.load_model("model.json")我预测说:
clf.predict(feat_list)发布于 2022-07-23 12:22:55
我有一个类似的问题,伴随着同一个XGBoostError。在我的例子中,原因是dtype of ndarray,它应该是object。
假设您的feat_list是numpy.ndarray,并且以这样的方式创建它:
feat_list = np.array(features)添加dtype=object
feat_list = np.array(features, dtype=object)应该能起作用。
https://stackoverflow.com/questions/72836857
复制相似问题