【问题标题】:While performing logistic regression i get the error : LinAlgError: Singular matrix在执行逻辑回归时出现错误:LinAlgError: Singular matrix
【发布时间】:2018-12-01 09:21:14
【问题描述】:

我正在使用 Lending Club 数据。我正在使用以下代码。

我有一个数据框 X,其中包含所有预测变量列,Y 包含贷款好坏的输出

#Here we change the good loans to 1 and bad loans to 0
mask = (Y['loan_condition'] == 'Good Loan')
Y['loan_condition'] = np.where(mask, 1, 0)


#Train Test Split and performing SMOTE
from sklearn.model_selection import train_test_split
from imblearn.over_sampling import SMOTE
os = SMOTE(random_state=0)
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, 
random_state=0)
columns = X_train.columns
os_data_X,os_data_Y=os.fit_sample(X_train, Y_train)
os_data_X = pd.DataFrame(data=os_data_X,columns=columns )
os_data_Y= pd.DataFrame(data=os_data_Y,columns=['loan_condition'])


X=np.array(os_data_X)
Y=np.array(os_data_Y)


#Performing Logistic Regression
import statsmodels.api as sm
logit_model=sm.Logit(Y,X)
result=logit_model.fit()
print(result.summary2())

错误/警告:

警告:已超过最大迭代次数。 当前函数值:inf 迭代次数:35

LinAlgError:奇异矩阵

有人可以帮我吗?帮助将不胜感激

【问题讨论】:

    标签: python logistic-regression data-analysis


    【解决方案1】:

    您有一个 LinAlgError: 奇异矩阵,这意味着您的 X 矩阵是线性相关的( 判别式等于零)。换句话说,Xn = akXk + ...+amXm

    因此,您必须更改 X 矩阵。如果您查看相关指标,它可能会给您带来一些想法。或者你可能会弄乱虚拟变量。例如,如果您有 3 个类别:猫、狗和鱼,您只需要 2 个,而不是 3 个标有 0 和 1 的类别。

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 2017-11-20
      • 2014-12-01
      • 2016-02-21
      相关资源
      最近更新 更多