保序回归的数学定义
保序回归,名字很形象,就是建立一种保证数据递增关系的回归函数。
如下图所示,当X从0增加到100时,Y的变化是波动的,但总体是往上增加的,此时做一个直线拟合,就是一个保序回归。
也可以采用isotonic回归,做成分段直线。
参考:
https://zhuanlan.zhihu.com/p/88623159
https://stat.fandom.com/wiki/Isotonic_regression
保序回归在二分类模型中的作用
我们做二分类模型时,模型通常会用model.predict_proba()这样的函数来得到预测概率。
但是此时模型输出的概率并不直接等同于发生风险。
此时通过保序回归变换,可以理解为事件实际发生的概率。
如下图,X轴是模型预测的概率,Y轴是保序回归变换后的概率。原始数据0.4的点,经过isotonic保序回归后,变成了0.66左右。
那这个0.66就可以认为实际发生的概率为66%。
这样改变的好处是对真正使用模型的人更直观地理解数据的意义。
此时的保序回归并不会改变准确率或者ROC,而只是改变了数据的单位或者意义。
为了检验这种变换的效果,可以用brier_score来计算经过回归变换后的值与事件真实发生的频率是否更一致。
如图所示,原始数据的得分是0.034,两个保序回归后的结果都变得更好,尤其是isotonic回归,效果比较出众。
但是这只是在训练集上做的变换,换到测试集上,效果就不一定了。
下图是测试集上的结果。变换后的结果反而还略微变差了。
结论:针对分类模型的预测概率结果进行保序回归并不会改变准确率,但是会使得概率与事件真实发生的频率更接近。
保序回归的其他应用
参考https://stat.fandom.com/wiki/Isotonic_regression
给出了保序回归的几个其他方面的应用:
1。 可以针对X(连续变量)->Y(0/1变量)之间作用关系给出一个描述。如下图通过保序回归,可以得到一个X->Y的关系曲线。
2. 剔除离群点。
如上图所示,当X增加到1.0后,Y基本就没有变化了,都基于到1上。那这样的点可以认为是一种离群点。所以通过上图,可以筛选出离群点。
3. 无监督中的距离函数。
对于无监督学习模型,需要保持相似度与距离函数的单调关系:越相似,距离应该越接近。所以通过保序回归,可以达到这一效果。