如何判断对象是否为两类模型类实例?是否存在对应基类?
问题解答
Statsmodels 结果类的共同基类
你提到的三个Statsmodels结果包装类:
statsmodels.genmod.generalized_linear_model.GLMResultsWrapperstatsmodels.regression.linear_model.RegressionResultsWrapperstatsmodels.base.elastic_net.RegularizedResultsWrapper
它们都继承自**statsmodels.base.model.Results**这个基类。你可以直接用这个基类判断对象是否属于Statsmodels结果类型,无需逐个列出子类:
import statsmodels.base.model as sm_base if isinstance(my_obj, sm_base.Results): # 处理Statsmodels结果对象的逻辑
Scikit-learn 分类器的共同基类
你提到的两个Scikit-learn分类器:
sklearn.ensemble._gb.GradientBoostingClassifiersklearn.ensemble._forest.RandomForestClassifier
所有Scikit-learn分类器都继承自**sklearn.base.ClassifierMixin**(同时也继承BaseEstimator,但ClassifierMixin是分类器特有的标识)。用这个基类可以判断任意Scikit-learn分类器对象:
from sklearn.base import ClassifierMixin if isinstance(my_obj, ClassifierMixin): # 处理Scikit-learn分类器的逻辑
这种方式比硬编码子类更灵活,后续新增的同类型子类也能被正确识别。
内容的提问来源于stack exchange,提问作者wwj123
相关产品推荐
相关产品推荐

