为了账号安全,请及时绑定邮箱和手机立即绑定

执行逻辑回归时出现错误:LinAlgError: Singular matrix

执行逻辑回归时出现错误:LinAlgError: Singular matrix

慕斯709654 2021-09-02 19:25:25
我正在使用 Lending Club 数据。我正在使用以下代码。我有一个包含所有预测列的数据框 X 和包含输出的 Y 是贷款是好还是坏#Here we change the good loans to 1 and bad loans to 0mask = (Y['loan_condition'] == 'Good Loan')Y['loan_condition'] = np.where(mask, 1, 0)#Train Test Split and performing SMOTEfrom sklearn.model_selection import train_test_splitfrom imblearn.over_sampling import SMOTEos = 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.columnsos_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 Regressionimport statsmodels.api as smlogit_model=sm.Logit(Y,X)result=logit_model.fit()print(result.summary2())错误/警告:警告:已超过最大迭代次数。当前函数值:inf 迭代次数:35LinAlgError:奇异矩阵有人可以在这里帮助我吗?帮助将不胜感激
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超12个赞

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

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


查看完整回答
反对 回复 2021-09-02
  • 1 回答
  • 0 关注
  • 2215 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信