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()
的选项不应包含x
或probs
。 - cuts
-
一个整数,定义对数据进行多少次切割。
- labels
-
定义新因子中的因子级别的字符向量(从最小到最大)。该长度应为
cuts+1
,并且不应包含缺失级别(请参阅下面的keep_na
)。 - prefix
-
用作因子级别前缀的单个参数值(例如
bin1
、bin2
等)。如果字符串不是有效的 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
使用百分位数估计 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 recipes detect_step 检测配方中是否使用了特定步骤或检查
- R recipes step_unknown 将缺失的类别分配给“未知”
- R recipes step_relu 应用(平滑)修正线性变换
- R recipes step_poly_bernstein 广义伯恩斯坦多项式基
- R recipes step_impute_knn 通过 k 最近邻进行插补
- R recipes step_impute_mean 使用平均值估算数值数据
- R recipes step_inverse 逆变换
- R recipes step_pls 偏最小二乘特征提取
- R recipes update.step 更新菜谱步骤
- R recipes step_ratio 比率变量创建
- R recipes step_geodist 两个地点之间的距离
- R recipes step_nzv 近零方差滤波器
- R recipes step_nnmf 非负矩阵分解信号提取
- R recipes step_normalize 中心和比例数值数据
- R recipes step_depth 数据深度
- R recipes step_other 折叠一些分类级别
- R recipes step_harmonic 添加正弦和余弦项以进行谐波分析
- R recipes step_corr 高相关滤波器
- R recipes step_novel 新因子水平的简单赋值
- R recipes step_select 使用 dplyr 选择变量
- R recipes formula.recipe 从准备好的食谱创建配方
- R recipes step_regex 检测正则表达式
- R recipes step_spline_b 基础样条
- R recipes step_window 移动窗口函数
- R recipes step_ica ICA 信号提取
注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Discretize Numeric Variables。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。