区间预测——conformal tights

2024-05-07 21:28
文章标签 预测 区间 conformal tights

本文主要是介绍区间预测——conformal tights,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

conformal tights 是一个python包

特征:

sklearn元估计器:向任何scikit-learn回归器添加分位数和区间的共形预测

darts预测:向任何scikit-learn回归器添加共形校准的概率预测

保形校准:准确的分位数和可靠的覆盖的区间

相干分位数:分位数单调增加而不是相互交叉

紧密分位数:选择提供所需覆盖范围的最低分散度

数据高效:仅需要少量校准示例即可拟合

pandas支持:可选择预测Dataframe并接收dataframe输出

预测分位数

conformal tights导出一个称为元估计器ConformalCoherenrQuantileRegressor,可以使用它来为任何scikit-learn回归器配备predict_quantiles预测共形校准分位数的方法。

获取数据:

X, y = fetch_openml("ames_housing", version=1, return_X_y=True, as_frame=True, parser="auto")

从OPENML数据库中下载数据集,OPENML是一个在线服务,提供了大量的数据集,共数据科学家和机器学习研究人员使用。

ames_housing:数据集的名称,是一个关于房价的中等规模数据集,常用于回归任务

version=1:数据集的版本号,OPENML中的数据集可能会随着时间的推移而更新

创建回归器,在训练集上拟合,然后基于测试集预测

# Create a regressor, equip it with conformal prediction, and fit on the train set
my_regressor = XGBRegressor(objective="reg:absoluteerror")
conformal_predictor = ConformalCoherentQuantileRegressor(estimator=my_regressor)
conformal_predictor.fit(X_train, y_train)# Predict with the underlying regressor
ŷ_test = conformal_predictor.predict(X_test)

使用一致性预测器预测分位数

ŷ_test_quantiles = conformal_predictor.predict_quantiles(X_test, quantiles=(0.025, 0.05, 0.1, 0.9, 0.95, 0.975)
)
print(ŷ_test_quantiles)

使用一致性预测器来预测测试集的多个分位数,quantiles参数指定了一组分位数,分别是0.025(2.5%)、0.05(5%)、0.1(10%)、0.9(90%)、0.95(95%)和0.975(97.5%)。这些分位数对应于预测分布的不同位置。

返回的部分结果:

可视化测试集上的预测分位数:

预测间隔

除了分位数预测外,还可以用predict_interval预测共形校准的预测区间,与分位数相比,这些侧重于可靠的覆盖范围而不是分位数精度

ŷ_test_interval = conformal_predictor.predict_interval(X_test, coverage=0.95)

使用一致性预测器来预测测试集上每个样本的房价区间,并且制定了期望的覆盖率(coverage为0.95)

conformal_predictor.predict_interval方法计算了对于给定测试数据集X_test中每个样本的95%预测区间。这个区间是一个范围,表达了预测值的不确定性,95%的覆盖率意味着我们期望95%的实际观测值会落在这个区间内。

计算出来的预测区间被存储在ŷ_test_interval变量中,这个变量通常是一个二维的dataframe或numpy数组,其中每一行对应于x_test中内的一个样本,每一列对应于区间的下界和上界。

coverage = ((ŷ_test_interval.iloc[:, 0] <= y_test) & (y_test <= ŷ_test_interval.iloc[:, 1])).mean()

ŷ_test_interval.iloc[:, 0]:预测区间的下界

ŷ_test_interval.iloc[:, 1]:预测区间的上界

y_test:测试集的实际目标

&用来判断测试集的实际目标值是否同时大于等于预测区间的下界且小于等于预测区间的上界

mean():计算平均值的方法,计算所有测试样本中落在预测区间内的比例。

预测时间序列

conformal tights还导出一个名为darts预测器,dartsforecaster它使用ConformalCoherentQuantileRegressor来进行共形校准的概率时间序列预测。

X.pd_dataframe()的输出结果为:

接上

在测试集上可视化预测及其预测区间:

这篇关于区间预测——conformal tights的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968434

相关文章

hdu 1754 I Hate It(线段树,单点更新,区间最值)

题意是求一个线段中的最大数。 线段树的模板题,试用了一下交大的模板。效率有点略低。 代码: #include <stdio.h>#include <string.h>#define TREE_SIZE (1 << (20))//const int TREE_SIZE = 200000 + 10;int max(int a, int b){return a > b ? a :

hdu4267区间统计

题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import

hdu4417区间统计

给你一个数列{An},然后有m次查询,每次查询一段区间 [l,r] <= h 的值的个数。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

hdu3333区间统计

题目大意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;

Tensorflow lstm实现的小说撰写预测

最近,在研究深度学习方面的知识,结合Tensorflow,完成了基于lstm的小说预测程序demo。 lstm是改进的RNN,具有长期记忆功能,相对于RNN,增加了多个门来控制输入与输出。原理方面的知识网上很多,在此,我只是将我短暂学习的tensorflow写一个预测小说的demo,如果有错误,还望大家指出。 1、将小说进行分词,去除空格,建立词汇表与id的字典,生成初始输入模型的x与y d

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络,提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题,常见的两种是: 二分类或多分类:预测患者对治疗有无耐受(二分类)、判断患者的疾病分级(多分类); 连续数值的预测:预测癌症病人的风险、预测患者的白细胞数值水平; 尽管传统的机器学习提供了高效的建模预测与初步的特征重

【uva】11536-Smallest Sub-Array(区间移动问题)

一个区间移动的问题,1A了,感觉没什么好说的。。 13975926 11536 Smallest Sub-Array Accepted C++ 0.809 2014-08-01 11:00:20 #include<cstdio>#include<cstring>#include<iostream>using namespace std;#define INF 1 << 30

【hdu】Just a Hook(线段树区间修改)

线段树模板题,练的是懒惰标记。 懒惰标记,就是更新一段区间的时候,如果小区间被包含在了所需要更新的区间里面,那么直接对代表这个区间的数组元素赋值,之后做一个标记(表示这个区间的子区间都需要更新)但是不继续递归(这样可以节省很多的时候)。 116571152014-09-15 14:17:26Accepted1698796MS2380K1750 BG++KinderRiven #

【hdu】I Hate It(线段树,结点修改求区间最大值)

线段树的模板题,还是二分递归。 #include <iostream>#include <cstdlib>#include <cstdio>#include <string>#include <cstring>#include <cmath>#include <vector>#include <queue>#include <set>#include <map>#incl

【hdu】敌兵布阵(线段树,更加结点,区间求和)

最近开始刷线段树,主要围绕notonlysuccess的线段树总结刷。 结点修改还是比较简单的,不需要什么懒惰标记,直接二分递归就可以了。 #include <iostream>#include <cstdlib>#include <cstdio>#include <string>#include <cstring>#include <cmath>#include <vecto