【问题标题】:How to display all logistic regression hyperparameters in Scikit-Learn如何在 Scikit-Learn 中显示所有逻辑回归超参数
【发布时间】:2021-05-28 02:40:15
【问题描述】:

这是我的第一个问题 :-)

我导入了 Scikit-Learn 提供的逻辑回归类,然后从中创建了一个对象:

from sklearn.linear_model import LogisticRegression
my_lr = LogisticRegression()

我正在研究的书说,当我检查我的对象时,我应该看到以下输出:

LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True, intercept_scaling=1, max_iter=100, multiclass='auto', n_jobs=None, penalty='l2', random_state=None, solver='warn', tool=0.0001, verbose=0, warm_start=False)

但是,当我在 Jupyter Notebook 中运行我的对象时,我只看到:

LogisticRegression()

即使我自己写下所有的超参数......

my_new_lr = LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True, intercept_scaling=1, max_iter=100, multiclass='auto', n_jobs=None, penalty='l2', random_state=None, solver='warn', tool=0.0001, verbose=0, warm_start=False)

...我只是继续看到这种输出:

LogisticRegression(solver='warn')

这令人失望,因为我希望括号中有很多超参数,以便了解它们的值是如何设置的并熟悉它们。

感谢您的帮助!

【问题讨论】:

标签: python scikit-learn logistic-regression hyperparameters


【解决方案1】:

您可以使用pprint() 代替print() 来代替model.get_params()

from pprint import pprint

print('Parameters currently in use:\n')
pprint(my_new_lr.get_params())

【讨论】:

    【解决方案2】:

    除了get_params(出于其他原因也值得了解)之外,至少还有两种其他方法可以获取这些信息。

    在 Jupyter 笔记本中,您可以调用 ?LogisticRegression 来查看整个文档字符串(这也是生成 API 文档页面的原因),其中详细说明了所有参数。

    sklearn 的旧版本在打印估算器时默认打印所有参数,因此您的书建议。您可以使用全局配置恢复该行为,请参阅 set_configconfig_context

    【讨论】:

    • 你一针见血:问题是我使用的是更新版本的sklearn。这就是为什么我没有看到我应该看到的超参数。澄清了这个问题,我认为我将使用?LogisticRegression 以便为我的个人学习目的轻松获取此信息。否则,如果我必须检查某个特定模型,我想获得更多详细信息,我可能会使用方法get_params()
    【解决方案3】:

    model.get_params(deep=True) 方法。所以,这应该给你参数集:

    print(my_new_lr.get_params())
    

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2016-02-21
      • 2018-03-01
      • 2016-07-31
      • 2012-06-27
      • 2016-06-17
      • 2019-03-22
      • 2019-09-20
      • 2013-09-30
      相关资源
      最近更新 更多