【发布时间】:2020-05-23 21:44:58
【问题描述】:
我正在使用以下函数来计算 p 值来构建拟合逻辑回归模型。
但我得到 LinAlgError:奇异矩阵错误。
from sklearn import linear_model
import scipy.stats as stat
class LogisticRegression_with_p_values:
def __init__(self, *args, **kwargs):
self.model = linear_model.LogisticRegression(*args, **kwargs)
def fit(self, X, y):
self.model.fit(X, y)
denom = (2.0 * (1.0 + np.cosh(self.model.decision_function(X))))
denom = np.tile(denom, (X.shape[1],1)).T
F_ij = np.dot((X/denom).T,X)
Cramer_Rao = np.linalg.inv(F_ij)
sigma_estimates = np.sqrt(np.diagonal(Cramer_Rao))
z_scores = self.model.coef_[0] / sigma_estimates
p_values = [stat.norm.sf(abs(x)) * 2 for x in z_scores]
self.coef_ = self.model.coef_
self.intercept_ = self.model.intercept_
self.p_values = p_values
reg = LogisticRegression_with_p_values()
reg.fit(inputs_train, loan_data_targets_train)
PS:两个数据集(inputs_train、loan_data_targets_train)是不同的。
但是,我仍然得到 LinAlgError: Singular matrix error。
请帮忙。
【问题讨论】:
标签: python-3.x logistic-regression