我将 python 与 sklearn 一起使用,并想获取模型的可用超参数列表,如何完成?谢谢
这需要在我初始化模型之前发生,当我尝试使用
model.get_params()
我明白了
TypeError: get_params() missing 1 required positional argument: 'self'
原文由 thebeancounter 发布,翻译遵循 CC BY-SA 4.0 许可协议
我将 python 与 sklearn 一起使用,并想获取模型的可用超参数列表,如何完成?谢谢
这需要在我初始化模型之前发生,当我尝试使用
model.get_params()
我明白了
TypeError: get_params() missing 1 required positional argument: 'self'
原文由 thebeancounter 发布,翻译遵循 CC BY-SA 4.0 许可协议
截至 2021 年 5 月:
(基于 sudo 的回答)
# To get the model hyperparameters before you instantiate the class
import inspect
import sklearn
models = [sklearn.linear_model.LinearRegression]
for m in models:
hyperparams = inspect.signature(m.__init__)
print(hyperparams)
#>>> (self, *, fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)
使用 inspect.getargspec(m.__init__).args
,正如 sudo 在接受的答案中所建议的那样,生成了以下警告:
DeprecationWarning: inspect.getargspec() is deprecated since Python 3.0,
use inspect.signature() or inspect.getfullargspec()
原文由 rahul-ahuja 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答500 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
应该这样做:
estimator.get_params()
其中estimator
是您的模型的名称。要在模型上使用它,您可以执行以下操作:
编辑:
在实例化类之前获取模型超参数:
模型超参数在
sklearn
中传递给构造函数,因此我们可以使用inspect
模型查看可用的构造函数参数,以及超参数。您可能需要过滤掉一些不特定于模型的参数,例如self
和n_jobs
。