可以使用 Romano 等人 (2019) 說明的分割共形推理方法來計算擬合回歸工作流對象的非參數預測區間。為了計算分位數,此函數使用分位數隨機森林而不是經典的分位數回歸。
用法
int_conformal_quantile(object, ...)
# S3 method for workflow
int_conformal_quantile(object, train_data, cal_data, level = 0.95, ...)
參數
- object
-
一個合適的
workflows::workflow()
對象。 - ...
-
傳遞給
quantregForest::quantregForest()
的選項(例如樹的數量)。 - train_data, cal_data
-
包含預測變量和結果數據的 DataFrame 。
train_data
應該與用於生成object
的數據相同,而cal_data
用於生成預測(和殘差)。如果工作流程使用配方,這些數據應該是配方的輸入數據(而不是配方的產品)。 - level
-
區間的置信水平。
值
類 "int_conformal_quantile"
的對象,包含創建間隔的信息(包括 object
)。 predict()
方法用於生成間隔。
細節
請注意,應在此函數中指定顯著性級別(而不是 predict()
方法)。
cal_data
應足夠大,以便能夠很好地估計極端分位數(例如,95% 間隔的第 95 個),並且不應包含原始訓練集中的行。
請注意,由於用於構造區間的方法,預測區間可能不包括預測值。
例子
library(workflows)
library(dplyr)
library(parsnip)
library(rsample)
library(tune)
library(modeldata)
set.seed(2)
sim_train <- sim_regression(500)
sim_cal <- sim_regression(200)
sim_new <- sim_regression( 5) %>% select(-outcome)
# We'll use a neural network model
mlp_spec <-
mlp(hidden_units = 5, penalty = 0.01) %>%
set_mode("regression")
mlp_wflow <-
workflow() %>%
add_model(mlp_spec) %>%
add_formula(outcome ~ .)
mlp_fit <- fit(mlp_wflow, data = sim_train)
mlp_int <- int_conformal_quantile(mlp_fit, sim_train, sim_cal,
level = 0.90)
mlp_int
#> Split Conformal inference via Quantile Regression
#> preprocessor: formula
#> model: mlp (engine = nnet)
#> calibration set size: 200
#> confidence level: 0.9
#>
#> Use `predict(object, new_data)` to compute prediction intervals
predict(mlp_int, sim_new)
#> # A tibble: 5 × 3
#> .pred .pred_lower .pred_upper
#> <dbl> <dbl> <dbl>
#> 1 4.46 -14.1 29.7
#> 2 5.83 -14.1 50.2
#> 3 9.27 -11.3 36.1
#> 4 1.50 1.67 46.8
#> 5 9.68 -15.6 19.8
相關用法
- R probably int_conformal_split 通過分割共形推理預測區間
- R probably int_conformal_cv 通過保形推理 CV+ 預測區間
- R probably is_class_pred 測試對象是否繼承自class_pred
- R probably append_class_pred 添加 class_pred 列
- R probably cal_plot_logistic 通過邏輯回歸繪製概率校準圖
- R probably class_pred 創建類別預測對象
- R probably cal_plot_breaks 通過分箱繪製概率校準圖
- R probably cal_estimate_multinomial 使用多項校準模型來計算新的概率
- R probably cal_validate_logistic 使用和不使用邏輯校準來測量性能
- R probably cal_validate_isotonic_boot 使用和不使用袋裝等滲回歸校準來測量性能
- R probably threshold_perf 生成跨概率閾值的性能指標
- R probably cal_estimate_beta 使用 Beta 校準模型來計算新概率
- R probably cal_plot_regression 回歸校準圖
- R probably as_class_pred 強製轉換為 class_pred 對象
- R probably levels.class_pred 提取class_pred級別
- R probably cal_estimate_isotonic 使用等滲回歸模型來校準模型預測。
- R probably locate-equivocal 找到模棱兩可的值
- R probably cal_estimate_logistic 使用邏輯回歸模型來校準概率
- R probably cal_validate_multinomial 使用和不使用多項式校準來測量性能
- R probably make_class_pred 根據類概率創建 class_pred 向量
- R probably cal_apply 對一組現有預測應用校準
- R probably reportable_rate 計算報告率
- R probably cal_validate_linear 使用和不使用線性回歸校準來測量性能
- R probably cal_estimate_isotonic_boot 使用引導等滲回歸模型來校準概率
- R probably cal_plot_windowed 通過移動窗口繪製概率校準圖
注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Prediction intervals via conformal inference and quantile regression。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。