python如何绘制预测模型校准图

Python024

python如何绘制预测模型校准图,第1张

python绘制预测模型校准图可以使用校准曲线,因为预测一个模型校准的最简单的方法是通过一个称为“校准曲线”的图(也称为“可靠性图”,reliability diagram)。

这个方法主要是将观察到的结果通过概率划分为几类(bin)。因此,属于同一类的观测值具有相近的概率。

对于每个类,校准曲线将预测这个类的平均值,然后将预测概率的平均值与理论平均值(即观察到的目标变量的平均值)进行比较。

你只需要确定类的数量和以下两者之间的分类策略即可:

1、“uniform”,一个0-1的间隔被分为n_bins个类,它们都具有相同的宽度。

2、“quantile”,类的边缘被定义,从而使得每个类都具有相同数量的观测值。

假设你的模型具有良好的精度,则校准曲线将单调增加。但这并不意味着模型已被正确校准。实际上,只有在校准曲线非常接近等分线时(即下图中的灰色虚线),您的模型才能得到很好的校准,因为这将意味着预测概率基本上接近理论概率。

python绘制预测模型中如何解决校准错误:

假设你已经训练了一个分类器,该分类器会产生准确但未经校准的概率。概率校准的思想是建立第二个模型(称为校准器),校准器模型能够将你训练的分类器“校准”为实际概率。

因此,校准包括了将一个一维矢量(未校准概率)转换为另一个一维矢量(已校准概率)的功能。

两种常被用作校准器的方法:

1、保序回归:一种非参数算法,这种非参数算法将非递减的自由格式行拟合到数据中。行不会减少这一事实是很重要的,因为它遵从原始排序。

2、逻辑回归:现在有三种选择来预测概率:普通随机森林、随机森林 + 保序回归、随机森林 + 逻辑回归。

a = [x,x,x,x,x,x,x]

h = []

l = []

for i in range(1, len(a)-1):

if(a[i-1] < a[i] and a[i+1] < a[i]):

h.append(a[i])

elif(a[i-1] > a[i] and a[i+1] > a[i]):

l.append(a[i])

if(len(h) == 0):

h.append(max(a))

if(len(l) == 0):

l.append(min(a[a.index(max(a)):]))

print h

print l