如何检查sklearn模型是分类器还是回归器
Posted
技术标签:
【中文标题】如何检查sklearn模型是分类器还是回归器【英文标题】:How to check if sklearn model is classifier or regressor 【发布时间】:2020-01-30 19:10:57 【问题描述】:是否有一种简单的方法可以检查模型实例是否解决了 scikit-learn 库中的分类或回归任务?
【问题讨论】:
这是一件有趣的事情,无法想象在实际拟合模型之前该信息不可用的场景。我只能想到检查模型预测的数据类型 【参考方案1】:使用sklearn.base.is_classifier
和/或is_regressor
:
from sklearn.base import is_classifier, is_regressor
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import RandomForestClassifier
models = [LinearRegression(), RandomForestClassifier(), RandomForestRegressor()]
for m in models:
print(m.__class__.__name__, is_classifier(m), is_regressor(m))
输出:
# model_name is_classifier is_regressor
LinearRegression False True
RandomForestClassifier True False
RandomForestRegressor False True
【讨论】:
谢谢,这正是我想要的!我不知道它存在于基础包中。【参考方案2】:我猜你问这个是因为你有一个你不知道类型的序列化模型。打开文件并执行
mlType = type(variable_name)
其中 variable_name 是反序列化模型的句柄。
输出例如
class 'sklearn.linear_model.base.LinearRegression'
【讨论】:
以上是关于如何检查sklearn模型是分类器还是回归器的主要内容,如果未能解决你的问题,请参考以下文章
在sklearn python中处理逻辑回归分类器中的极端不平衡多类
如何在 Sklearn 的随机森林分类器中将训练模型用于另一个数据集?
sklearn库学习----随机森林(RandomForestClassifier,RandomForestRegressor)