R语言MLR包多标签分类器链order参数填写方法
makeMultilabelClassifierChainsWrapper 中order参数的正确赋值方法 首先明确参数基本规则:
- 默认值
NULL的逻辑是直接沿用多标签任务中标签列的原始排列顺序构建分类器链 - 自定义顺序时,必须传入和任务标签总数长度一致的整数向量:
- 向量元素是标签对应的位置索引,取值为1到标签总数的连续、不重复整数
- 向量中元素的排列顺序,就是分类器链处理标签的先后顺序
实际使用示例
假设你构建的多标签分类任务共包含3个标签,原始标签列的排列顺序为label1、label2、label3,对应位置索引分别为1、2、3。如果你需要把链的处理顺序调整为:先处理label3,再处理label1,最后处理label2,直接给order传入对应位置的整数向量即可,完整调用代码如下:
# 初始化基础分类器,示例用CART决策树 base_learner <- makeLearner("classif.rpart") # 构建自定义顺序的分类器链 cc_learner <- makeMultilabelClassifierChainsWrapper( learner = base_learner, order = c(3, 1, 2) # 对应顺序:第3个标签 -> 第1个标签 -> 第2个标签 )
避坑提示
- 该参数不接受标签名称组成的字符向量,仅识别整数格式的位置索引
- 传入的整数不能重复、不能超出1~标签总数的范围,否则会直接触发报错
- 如果需要随机生成标签顺序做对照实验,不需要手动生成随机向量传给order,直接调用专门的随机分类器链封装函数
makeMultilabelRandomClassifierChainsWrapper即可。
内容的提问来源于stack exchange,提问作者Dinda Galuh
相关产品推荐
相关产品推荐

