ValueError: срок штрафа должен быть положительным - PullRequest
0 голосов
/ 29 января 2019

Когда я подгоняю свою модель, используя логистическую регрессию, показываю мне ошибку значения, например ValueError: штрафной термин должен быть положительным.

C=[1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, 1e3, 1e4]
for i in C[-9:]:
    logisticl2 = LogisticRegression(penalty='l2',C=C)
    logisticl2.fit(X_train,Y_train)
    probs = logisticl2.predict_proba(X_test)

при получении ошибки:

ValueError: штрафный термин должен быть положительным;получили (С = [0,0001, 0,001, 0,01, 0,1, 1,0, 10,0, 100,0, 1000,0, 10000,0])

1 Ответ

0 голосов
/ 29 января 2019

Если присмотреться, вы поймете, что выполняете цикл, в котором ничего не меняется в вашем коде - это всегда C=C, независимо от текущего значения вашего i.И вы получите ожидаемую ошибку, поскольку C должен быть плавающим, а не списком ( docs ).

Если, как я подозреваю, вы пытаетесь запустить логистическую регрессиюКлассификатор для всех значений в вашем C списке, вот как вы должны изменить свой код:

C=[1e-4, 1e-3, 1e-2, 1e-1, 1e0, 1e1, 1e2, 1e3, 1e4]
for i in C:                                             # 1st change
    logisticl2 = LogisticRegression(penalty='l2',C=i)   # 2nd change
    logisticl2.fit(X_train,Y_train)
    probs = logisticl2.predict_proba(X_test)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...