K-S值

来源:互联网 发布:win10 改Wifi mac地址 编辑:程序博客网 时间:2024/06/05 05:23

from scipy.stats import ks_2sampget_ks=lambda y_pred,y_true: ks_2samp(y_pred[y_true==1], y_pred[y_true!=1]).statisticget_ks(x,y)

https://www.cnblogs.com/bregman/p/6279261.html


k-s检验是无参数检验,相当于通过两个分布(CDF)竖直距离最大的地方作为k-s值。

在检验排序型的模型(Logistic Regression、Random Forest)的时候,是真值中为1的score的分布和真值中为0的score的分布的k-s值。(越大越好)


自己在使用RF模型时候的小结:

from scipy.stats import ks_2sampget_ks = lambda y_pred, y_true: ks_2samp(y_pred[y_true==1], y_pred[y_true!=1]).statistic  # For general testget_ks(clf_r.predict_proba(x_r_test), pd.DataFrame(y_r_test))get_ks_for_grid = lambda estimators, X, y: ks_2samp(estimators.predict_proba(X)[pd.DataFrame(y)==1], estimators.predict_proba(X)[pd.DataFrame(y)==0]).statistic      # For grid search

我在线上跑的时候,会出现错误,需要更改为:

from scipy.stats import ks_2sampget_ks = lambda y_pred, y_true: ks_2samp(y_pred[y_true==1], y_pred[y_true!=1]).statisticget_ks_for_estimators = lambda estimators, X, y: get_ks(estimators.predict_proba(X)[:,0], y)


原创粉丝点击