[英]LinAlgError: Singular matrix from Statsmodels logistic regression
[英]While performing logistic regression i get the error : LinAlgError: Singular matrix
我正在使用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:奇异矩阵
有人可以帮我吗? 帮助将不胜感激
您有一个LinAlgError:奇异矩阵,这意味着您的X矩阵是线性相关的(<=>判别式等于零)。 换句话说,Xn = akXk + ... + amXm
因此,您必须更改X矩阵。 如果您查看相关性指标,可能会给您带来一些想法。 否则您可能会弄乱虚拟变量。 例如,如果您有3个类别:猫,狗和鱼,则只需要2个,而不是3个标有零和一的类别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.