Как отобразить все гиперпараметры логистической регрессии в Scikit-Learn

это мой самый первый вопрос здесь :-)

Я импортировал класс логистической регрессии, предоставленный 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')

Это разочаровывает, потому что я ожидал много гиперпараметров в скобках, чтобы увидеть, как устанавливаются их значения, и ознакомиться с ними.

Спасибо за помощь!


person Melvis    schedule 25.02.2021    source источник
comment
Проверьте этот вопрос [Похожий вопрос] (stackoverflow.com/questions/54572468/ ) И, возможно, другая причина в том, что вы используете гиперпараметры по умолчанию   -  person Inputvector    schedule 25.02.2021


Ответы (2)


Есть model.get_params(deep=True) метод. Итак, это должно дать вам набор параметров:

print(my_new_lr.get_params())
person Kromel    schedule 25.02.2021

В дополнение к get_params (о котором стоит знать и по другим причинам), есть как минимум два других способа получить часть этой информации.

В блокноте Jupyter вы можете вызвать ?LogisticRegression, чтобы увидеть всю строку документации (которая также создает страницы документации API), в которой подробно описаны все параметры.

Старые версии sklearn печатали все параметры по умолчанию при печати оценки, отсюда и предложение вашей книги. Вы можете вернуть это поведение с помощью глобальных конфигураций, см. set_config или config_context.

person Ben Reiniger    schedule 26.02.2021
comment
Вы попали в самую точку: проблема в том, что я использую более новую версию sklearn. Вот почему я не видел гиперпараметры, как должен. Уточнил этот вопрос. Я думаю, что буду использовать ?LogisticRegression, чтобы легко получить эту информацию для моих личных учебных целей. В противном случае, если мне нужно изучить определенную конкретную модель, о которой я хочу получить более подробную информацию, я, вероятно, воспользуюсь методом get_params() - person Melvis; 27.02.2021