当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R recipes discretize 离散数值变量


discretize() 将数值向量转换为具有大致相同数据点数量的箱的因子(基于训练集)。

用法

discretize(x, ...)

# S3 method for default
discretize(x, ...)

# S3 method for numeric
discretize(
  x,
  cuts = 4,
  labels = NULL,
  prefix = "bin",
  keep_na = TRUE,
  infs = TRUE,
  min_unique = 10,
  ...
)

# S3 method for discretize
predict(object, new_data, ...)

参数

x

数值向量

...

传递给 stats::quantile() 的选项不应包含 xprobs

cuts

一个整数,定义对数据进行多少次切割。

labels

定义新因子中的因子级别的字符向量(从最小到最大)。该长度应为cuts+1,并且不应包含缺失级别(请参阅下面的keep_na)。

prefix

用作因子级别前缀的单个参数值(例如 bin1bin2 等)。如果字符串不是有效的 R 名称,则会将其强制为 1。如果是 prefix = NULL ,则因子级别将根据 cut() 的输出进行标记。

keep_na

是否应创建因子级别来识别 x 中缺失值的逻辑。如果 keep_na 设置为 TRUE,则在调用 stats::quantile() 时使用 na.rm = TRUE

infs

指示最小和最大分割点是否应该是无限的逻辑。

min_unique

定义分箱尊严的样本大小线的整数。如果(唯一值的数量) /(cuts+1) 小于 min_unique ,则不会发生离散化。

object

discretize 的对象。

new_data

要分箱的新数字对象。

discretize 返回类 discretize 的对象,predict.discretize 返回因子向量。

细节

discretize 使用百分位数估计 x 的分割点。例如,如果 cuts = 3 ,该函数会估计 x 的四分位数并将其用作分割点。如果 cuts = 2 ,则 bin 被定义为高于或低于 x 的中值。

然后可以使用 predict 方法将数值向量转换为因子向量。

如果是 keep_na = TRUE ,则后缀 "_missing" 将用作因子级别(请参阅下面的示例)。

如果 infs = FALSE 和新值大于 x 的最大值,则会导致缺失值。

例子

data(biomass, package = "modeldata")

biomass_tr <- biomass[biomass$dataset == "Training", ]
biomass_te <- biomass[biomass$dataset == "Testing", ]

median(biomass_tr$carbon)
#> [1] 47.1
discretize(biomass_tr$carbon, cuts = 2)
#> Bins: 3 (includes missing category)
#> Breaks: -Inf, 47.1, Inf
discretize(biomass_tr$carbon, cuts = 2, infs = FALSE)
#> Bins: 3 (includes missing category)
#> Breaks: 14.61, 47.1, 97.18
discretize(biomass_tr$carbon, cuts = 2, infs = FALSE, keep_na = FALSE)
#> Bins: 2
#> Breaks: 14.61, 47.1, 97.18
discretize(biomass_tr$carbon, cuts = 2, prefix = "maybe a bad idea to bin")
#> Warning: The prefix 'maybe a bad idea to bin' is not a valid R name. It has been changed to 'maybe.a.bad.idea.to.bin'.
#> Bins: 3 (includes missing category)
#> Breaks: -Inf, 47.1, Inf

carbon_binned <- discretize(biomass_tr$carbon)
table(predict(carbon_binned, biomass_tr$carbon))
#> 
#> bin1 bin2 bin3 bin4 
#>  114  115  113  114 

carbon_no_infs <- discretize(biomass_tr$carbon, infs = FALSE)
predict(carbon_no_infs, c(50, 100))
#> [1] bin4 <NA>
#> Levels: bin1 bin2 bin3 bin4
源代码:R/discretize.R

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Discretize Numeric Variables。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。