Максимальное количество итераций было превышено в логистической регрессии - PullRequest
1 голос
/ 16 мая 2019

Я использую файл данных load_breast_cancer () для классификации опухоли. После запуска statsmodels для проверки p-значения каждой переменной возникает ошибка:

Warning: Maximum number of iterations has been exceeded.
         Current function value: inf
         Iterations: 35 

LinAlgError: Singular matrix

Надеюсь, ты мне поможешь! Спасибо! Я попробовал какое-то решение на stackoverflow об этой проблеме, но оно не работает!

это мой код:

from sklearn.datasets import load_breast_cancer

df = load_breast_cancer()
df_cancer = pd.DataFrame(np.c_[df['data'], df['target']], columns = np.append(df['feature_names'], ['target']))


import statsmodels.api as sm
import scipy.stats as st
from statsmodels.tools import add_constant as add_constant
df_constant = add_constant(df_cancer)
df_constant.head()

st.chisqprob = lambda chisq, df_cancer: st.chi2.sf(chisq, df_cancer)
cols=df_constant.columns[:-1]

model=sm.Logit(df_cancer['target'],df_constant[cols])
result = model.fit()

ожидаемое значение - результат, который показывает результаты регрессии Logit!

1 Ответ

1 голос
/ 16 мая 2019

Просто пройдите эти строки

result = model.fit(method='bfgs')
print(result.summary())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...