我正在使用 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条经验 获得超13个赞
您有一个 LinAlgError: Singular matrix,这意味着您的 X 矩阵是线性相关的(<=> 判别式等于零)。换句话说,Xn = akXk + ...+amXm
因此,您必须更改 X 矩阵。如果你看看你的相关性指标,它可能会给你带来一些想法。或者你可能会弄乱虚拟变量。例如,如果您有 3 个类别:猫、狗和鱼,则只需要 2 个,而不是用 0 和 1 标记的 3 个。
添加回答
举报
0/150
提交
取消