如何在python中检查模型对象是否为Xgboost

2024-06-17 13:12:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图评估模型对象是否为xgboost,如果不是,则会引发错误

import pandas as pd
import xgboost as xgb
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
y = pd.Series(boston.target)
regressor = xgb.XGBRegressor(
    n_estimators=100,
    reg_lambda=1,
    gamma=0,
    max_depth=3
)

regressor.fit(X, y)


type(regressor)


我尝试使用以下两种情况,但都失败了 第一种方法

if type(regressor) == 'xgboost.sklearn.XGBRegressor':
    print("Xgboost Model")


第二种方法

if not isinstance(regressor,XGBRegressor):
    raise TypeError("wrong input ")

我需要为xgboost评估模型对象,无论它是分类器还是回归器,它都应该检查两者的条件


Tags: 对象方法from模型importastypeload
1条回答
网友
1楼 · 发布于 2024-06-17 13:12:29
你可以考虑(首选):

if isinstance(regressor, xgb.sklearn.XGBRegressor) or isinstance(regressor, xgb.sklearn.XGBClassifier):
    print("Xgboost Model")
else:
    raise TypeError("wrong input")

或者,根据您的评论:

if regressor.__class__.__name__ in ['XGBRegressor', 'XGBClassifier']:
    print("Xgboost Model")
else:
    raise TypeError("wrong input")

相关问题 更多 >