python取近似值,python实现π的计算
用sklearn进行logistic回归时,如果要检查变量的p值是否足够小,只能自己计算p值。似然比是检验逻辑回归参数的一种方法。
假设我们的逻辑回归有N个特征,我们需要测试x1特征的参数w1。
1.计算包含所有特征的预测概率似然估计L0。
2.扣除x1特征重新拟合logistic回归,计算新的logistic回归模型的似然估计L1。
3.以1个自由度计算2*ln(L0/L1)的卡方分布。
导入副本
定义可能性(预测,y):
如果不是isinstance(y,list):
yt=y.tolist()
否则:
yt=copy.copy(y)
ss=0
对于范围内的I(len(yt)):
ss=np.log(pred[i][yt[i]])
返回ss
从scipy.stats导入chi2
# lr是具有所有特征的模型,X_train是具有所有特征的自变量,y_train是具有所有特征的因变量。
pred=lr.predict_proba(X_train)
total _ likelihood=likelihood(pred,y_train)
对于范围内的I(len(x _ cols)):
# count所有特性的p值
#计算扣除col后的预测值
left_col=x_cols[:i] x_cols[i 1:]
left_train_x=X_train.loc[:left_col]
left _ lr=LogisticRegression(penalty= L2 ,C=0.9,n_jobs=-1)
left_lr.fit(左列车x,y列车)
left _ pred=left _ lr . predict _ proba(left _ train _ x)
left _ likelihood=likelihood(left _ pred,y_train)
ch2_value=(总可能性-左可能性)* 2
pvalue=CH2 . SF(CH2 _ value,1)
print(x_cols[i],pvalue)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。