首页 > 其他分享 >校准-calibration

校准-calibration

时间:2023-08-15 11:56:24浏览次数:35  
标签:bin non 校准 df calibration list prob bins

保序回归

保序回归其实是reliability diagram回归的自动版,即自动选择分桶的边界。如下图:

从mse的角度来说,loss会比OLS大,但是保证了不改变模型的排序能力。个人认为,对于contrastive loss或者是cross entropy loss,都会由于优化目标与p(y|x)的真实值有区别。如果选模型用的是auc的话,那么用其他的如logistic regression做校准会改变模型的排序能力。这时候需要思考取舍,是准度更重要还是排序能力更重要。

虽然[1]中描述的用法需要预先分桶,但是在sklearn的实际使用中其实不需要分桶都可以获得正确的曲线。

1 ir = IsotonicRegression(out_of_bounds="clip")
2 ir_prob_list = y_ = ir.fit_transform(all_prob_list, all_label_list)
3 x = all_prob_list
4 y = all_label_list
5 df = pd.DataFrame({"x": x, "y": y, "y_": y_})
6 df = df.sort_values("x")
7 plt.plot(df.x, df.y, "C0.")
8 plt.plot(df.x, df.y_, "C1.-")

附录: 计算ece的代码

 1 def compute_ece(prob_list, label_list, num_bins=20):
 2     bins = np.linspace(0, 1, num_bins+1)
 3     bin_indices = np.digitize(prob_list, bins, right=True)
 4 
 5     bin_sums = np.bincount(bin_indices, weights=prob_list, minlength=num_bins+2)[1:-1]
 6     bin_true = np.bincount(bin_indices, weights=label_list, minlength=num_bins+2)[1:-1]
 7     bin_total = np.bincount(bin_indices, minlength=num_bins+2)[1:-1]
 8 
 9     non_empty_bins = bin_total > 0
10     bin_diffs = np.abs(bin_true[non_empty_bins]/bin_total[non_empty_bins] - bin_sums[non_empty_bins]/bin_total[non_empty_bins])
11 
12     bin_weights = bin_total[non_empty_bins] / bin_total.sum()
13     ece = (bin_diffs * bin_weights).sum()
14 
15     return ece

 

 

[1] http://vividfree.github.io/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/2015/12/21/classifier-calibration-with-isotonic-regression

标签:bin,non,校准,df,calibration,list,prob,bins
From: https://www.cnblogs.com/kunrenzhilu/p/17630969.html

相关文章

  • 网卡校准:调整网卡的 Buffer size 与网卡队列
    调整Buffersize操作:使用ethtool命令可以调整网卡的Buffersize。例如,要调整eth0网卡的接收缓冲区大小为4096字节,可以执行以下命令:ethtool-Geth0rx4096作用:网卡的Buffersize决定了网卡能够缓存的数据包数量和大小。较大的Buffersize可以提高网络吞吐量和性能,尤......
  • ESXI设置时区,时间校准
    相信会考虑这个问题的人,都是因为要设置虚拟机的调度任务吧:)一开始我还是想着打开NTP服务,通过NTP服务校准时间,不过后来经过了解,NTP漏洞也比较多,如果在物理机上开放NTP服务和端口,风险比较大权衡之后,还是觉得:1.修改物理机ESXI系统时区,2修改物理机ESXI为正确时间即可废话不多说,直接......
  • 多功能表校验仪TD1850多用表校准系统
    参考标准分类标准名称国家标准GB/T13978-2008数字多用表GB/T15637-2012数字多用表校准仪通用规范计量法规JJF1075-2015钳形电流表校准规范JJF1284-2011交直流电表校验仪校准规范JJF1587-2016数字多用表校准规范JJG124-2005电流表、电压表、功率表及电阻表检......
  • 三用表校准仪TD1850多用表校准系统
    三用表校准仪TD1850适用于校准三位半数字多用表,0.2级及以下的交直流电压表、交直流电流表、电阻表,0.01级及以下的频率表。直流电压标准源(DCV)输出范围:20mV~1100V直流电流标准源(DCI)输出范围:2μA~22A或33A交流电压标准源(ACV)输出范围:20mV~1100V、45Hz~1100......
  • 钳形表校准仪TD1050钳形表校准装置
    钳形表校准仪TD1050是一台用于校准多功能钳形表的装置,集交直流大电流标准源、交直流电压标准源和电阻标准源等功能于一体,兼具交直流功率输出功能,可满足不同精度等级的多功能钳形表的校准需求。2.钳形表校准仪TD1050产品特征直流电流输出:10mA~1050A(2100A选件)交流电流输出:10......
  • [机器人]FANUC发那科机器人零点标定/校准
    首先,需要设定变量$MASTER_ENB的值为1,具体步骤为。1.MENU-下一页-变量。2.ITEM-输入313-变量$MASTER_ENB的值设为1。接下来,通过MENU-下一页-系统-零点标定/校准,进入校准页面。(注:可以提前把机器各轴移动至原点位置)后一步,单击“更新零点标定结果”-是,完成更新操作。(注:无论哪种标......
  • 万用表校准仪TD1855多用表校准系统
    应用场景:由交直流电压(DCV/ACV)、交直流电流(DCI/ACI)独立输出且相位可调组成的虚功率标准源,适用于校准交直流功率表。TD1855适用于校准0.5级及以下的直流功率表、有功功率表、无功功率表、视在功率表、工频相位表和功率因数表。用户可选配TD1020电流线圈(50匝),通入20A......
  • 数字多功能校准仪TD1870多功能校准系统
    应用场景:由交直流电压(DCV/ACV)、交直流电流(DCI/ACI)独立输出且相位可调组成的虚功率标准源,适用于校准交直流功率表。适用于校准0.1级及以下的直流功率表、0.2级及以下的有功功率表、无功功率表、视在功率表、工频相位表和功率因数表。可选直流小信号测量的功能,支持最......
  • 便携式多功能校准器TD1858携式多功能校准仪器
    体积小巧:相较于同档次技术指标的多功能校准器,体积缩小至50%,重量轻便:整机质量不到10kg,人员可轻松实现搬运,方案价值:非常方便携带至工作现场对数字多用表和其他电测仪表进行校准。直流电压标准源(DCV)输出范围:+(10mV~1020V)、-(10mV~10.4V)直流电流标准源(DCI)输......
  • 多用表校准器TD1050钳形表校准装置
    TD1050装置具有“定点输出”方式,通过点击触摸屏,直接设置所需输出的量值,装置将全自动切换至最佳量程输出,使得校准数字式仪表变得非常方便。特别是在设定交流电压/电流输出时,直接同时输入幅值和频率即可,使用十分便捷。打开电流输出铜环的连接处,将标准电流表接入电流输出回路中,即可......