R手册(Machine Learning)--mlr (Part 2)

2023-10-27

R手册(Machine Learning)–mlr (Part 1)
R手册(Machine Learning)–mlr (Part 2)


mlr

Configuration (配置)

getMlrOptions()查看mlr 的现有设置
configureMlr()更改mlr的默认设置

参数:

  • show.info:(traning, tuning, resampling,etc)是否展示默认冗长的输出,默认TRUE
  • on.learner.error:怎样控制learner的错误, “stop”(default), “warn”, “quiet”
  • on.learner.warning:怎样控制learner的警告,“warn”(default) , “quiet”
  • on.par.without.desc:超参数控制,“stop”(default), “warn” ,“quiet”
  • on.par.out.of.bounds:超参数超出边界值,“stop”(default) ,“warn”, “quiet”
  • on.measure.not.applicable:评估指标对learner不适用,“stop”(default) , “warn”, “quiet”
  • show.learner.output:learner在训练的时候输出到控制台,默认TRUE
  • on.error.dump:是否为crashed learner创建一个error dump,当on.learner.error 没有被指定为"stop" 时,默认TRUE

Parallelization (并行)

mlr结合parallelMap包利用多核和集群运算加快运行速度,mlr自动发现能进行并行的操作。

开始并行parallelStart(mode=,cpus=,level=)
结束并行parallelStop()

参数 说明
mode 决定并行的方式
“local” 无并行性,简单的使用mapply
“multicore” 单机器上多核,使用parallel::mclapply,windows上不适用
“socket” 多核socked mode
“mpi” 一个或多个机器上集群运算,使用parallel::makeCluster and parallel::clusterMap
“BatchJobs” 批排队HPC集群,使用BatchJobs::batchMap
cpus 使用的物理内核数
level 控制并行,使用"mlr.benchmark" “mlr.resample” “mlr.selectFeatures” “mlr.tuneParams” “mlr.ensemble”

Imputation (插补)

impute(obj=,target=,cols=,dummy.cols=,dummy.type=)
缺失的数据进行插补,返回一个列表,包括插补过额数据集或task,和插补描述

reimpute(obj=,desc=)用已被impute创建的插补描述(description, desc)插补缺失值

  • obj= data.frame or task
  • target= 指定目标变量,将不会被插补
  • cols= 要插补的列名或逻辑列表
  • dummy.cols= 建立NA(T/F)列的列名
  • dummy.type= 设定"numeric",用(0,1)代替(T/F)
  • 也能用classes 和dummy.classes 代替cols

传递给cols或classes的list示例:
cols=list(V1=imputeMean()) V1是要插补的列,imputeMean()为要插补的方法

允许的插补方法 说明
imputeConst(const=) 常数
imputeMedian() 中位数
imputeMode() 众数
imputeMin(multiplier=) 最小值
imputeMax(multiplier=) 最大值
imputeNormal(mean=,sd=) 正态插补
imputeHist(breaks=,use.mids=)
imputeLearner(learner=,features=) 模型插补

Feature Extraction (特征提取)

1. Feature filtering(特征筛选)

filter

filterFeatures(task=,method=,perc=,abs=,threshold=)
按特征的重要性进行排序,选择其中的top n percent(perc=), top n(abs=) or 设定阈值(threshold=),返回task,没有被筛选的特征将会被删除。

默认的筛选方法为"randomForestSRC.rfsrc",也可以设置其他方法:
“anova.test” “carscore” “cforest.importance”
“chi.squared” “gain.ratio” “information.gain”
“kruskal.test” “linear.correlation” “mrmr” “oneR”
“permutation.importance” “randomForest.importance”
“randomForestSRC.rfsrc” “randomForestSRC.var.select”
“rank.correlation” “relief”
“symmetrical.uncertainty” “univariate.model.score”
“variance”

2. Feature selection(特征选择)

selection

selectFeatures(learner=,task=, resampling=,measures=,control=)
用一个特征选择算法(control)重抽样和建立模型,反复选择不同的特征集,直到找到最好的特征集。返回FeatSelResult对象,包括最佳选择和最佳路径。

tsk = subsetTask(tsk,features=fsr$x)应用最佳选择结果(fsr)到task(tsk)

特征选择算法(control)

  • makeFeatSelControlExhaustive(max.features=)尝试每一种特征组合,可选参数max.features
  • makeFeatSelControlRandom(maxit=,prob=,max.features=)随机抽取特征集(概率prob,default 0.5) 迭代(maxit,default 100),返回其中最好的。
  • makeFeatSelControlSequential(method=,maxit=,max.features=,alpha=,beta=)用以下的迭代算法搜寻,评估:
    “sfs” forward search, “sffs” floating forward search,
    “sbs” backward search , “sfbs” floating backward search,
    “alpha” 每次增加一个特征来改善评估,取最少特征集
    “beta” 每次移除一个特征来改善评估,取最少特征集
  • makeFeatSelControlGA(maxit=,max.features=,mu=,lambda=,crossover.rate=,mutation.rate=)随机特征向量的遗传算法,然后利用最佳性能的交叉来产生后代,代代相传,参数:
    mu是父系规模
    lambda 是子系规模
    crossover.rate 从第一亲本选择一点的概率
    mutation.rate 是翻转的概率(on or off)

Benchmarking (基准点)

benchmark(learners=,tasks=,resamplings=,measures=)
允许进行简单的比较:执行单一task的多重learner,执行多重task的单一learner,或者执行多重task的多重learner,返回一个基准结果对象。
基准结果被函数getBMR<object>接收:
AggrPerformance
FeatSelResults FilteredFeatures LearnerIds
LeanerShortNames Learners MeasureIds Measures
Models Performances Predictions TaskDescs TaskIds
TuneResults

mlr内置了许多有趣的task,对基准学习很有帮助:
agri.task bc.task bh.task costiris.task iris.task
lung.task mtcars.task pid.task sonar.task
wpbc.task yeast.task

Visualization (可视化)

1. 可视化总表

生成数据函数 ggplot2绘图函数 ggvis绘图函数 说明
generateThreshVsPerfData plotThresVsPerf plotThreshVsPerfGGVIS 性能
plotROCCurves - ROC分析
generateCritDifferencesData plotCritDifferences - 基准实验
generateHyperParsEffectData plotHyperParsEffect 调整,超参数调整效果
generateFilterValuesData plotFilterValues plotFilterValuesGGVIS 功能选择
generateLearningCurveData plotLearningCurve plotLearningCurveGGVIS 学习曲线
generatePartialDependenceData plotPartialDependence plotPartialDependenceGGVIS 部分依赖情节
generateFunctionalANOVAData
generateCalibrationData plotCalibration - 分类器校准图

2. 可视化函数说明

Performance 表现
generateThreshVsPerfData(obj=,measures=) 获得二分类问题不同切分点评估质量,促使选出最优阈值(threshold)
plotThreshVsPerf(obj) 用ThreshVsPerfData数据作出阈值可视化表现
plotROCCurves(obj) 用ThreshVsPerfData数据做出ROC曲线,一定要设定measures=list(fpr,tpr)
Residuals 残差
plotResiduals(obj=) 为Prediction 或BenchmarkResult对象作残差

示例

n = getTaskSize(sonar.task)
train.set = sample(n, size = round(2/3 * n))
test.set = setdiff(seq_len(n), train.set)

lrn1 = makeLearner("classif.lda", predict.type = "prob")
mod1 = train(lrn1, sonar.task, subset = train.set)
pred1 = predict(mod1, task = sonar.task, subset = test.set)

df = generateThreshVsPerfData(pred1, measures = list(fpr, tpr, mmce))
performance(pred1, auc)
#>      auc 
#> 0.847973
plotThreshVsPerf(df)

lrn2 = makeLearner("classif.ksvm", predict.type = "prob")  # 需要载入包kernlab
mod2 = train(lrn2, sonar.task, subset = train.set)
pred2 = predict(mod2, task = sonar.task, subset = test.set)

df = generateThreshVsPerfData(list(lda = pred1, ksvm = pred2), measures = list(fpr, tpr))
plotROCCurves(df)

阈值
roc

Learning curve 学习曲线
generateLearningCurveData(learners=,task=,resampling=,percs=,measures=) 获得不同百分比的task data上做模型评估质量数据
plotLearningCurve(obj=) 比较数据的已使用和模型质量的关系,使用LearningCurveData对象

示例

r = generateLearningCurveData(
  learners = c("classif.rpart", "classif.knn"),
  task = sonar.task,
  percs = seq(0.1, 1, by = 0.2),
  measures = list(tp, fp, tn, fn),
  resampling = makeResampleDesc(method = "CV", iters = 5),
  show.info = FALSE)
plotLearningCurve(r)

学习曲线

Feature importance 特征重要性
generateFilterValuesData(task=,method=) 用指定的选择方法获得排序的特征重要性
plotFilterValues(obj=) 可视化特征重要性,FilterValuesData对象

示例

fv = generateFilterValuesData(iris.task)
plotFilterValues(fv)

import

Hyperparameters tuning 超参数调优
generateHyperParsEffectData(tune.result=) 获得不同超参数的影响
plotHyperParsEffect(hyperpars.effect.data=,x=,y=,z=) 可视化超参数影响,HyperParsEffectData对象
plotOptPath(op=) 可视化最优进程详情,<obj>$opt.path对象, <obj>是 tuneResult或 featSelResult类的对象。
plotTuneMultiCritResult(res=) 展示pareto图,多重评估质量的调优结果

示例

ps = makeParamSet(
  makeNumericParam("C", lower = -5, upper = 5, trafo = function(x) 2^x)
)
ctrl = makeTuneControlGrid()
rdesc = makeResampleDesc("Holdout")
lrn = makeTuneWrapper("classif.ksvm", control = ctrl,
                      measures = list(acc, mmce), resampling = rdesc, par.set = ps, show.info = FALSE)
res = resample(lrn, task = pid.task, resampling = cv2, extract = getTuneResult, show.info = FALSE)
data = generateHyperParsEffectData(res)
plotHyperParsEffect(data, x = "C", y = "acc.test.mean", plot.type = "line")

超参数

Partial dependence 部分依赖
generatePartialDependenceData(obj=,input=) 获得模型(obj)的部分依赖预测,通过每一次的特征数据输入(input)
plotPartialDependence(obj=) 部分依赖图,PartialDependenceData对象

示例

lrn.regr = makeLearner("regr.ksvm")
fit.regr = train(lrn.regr, bh.task)
pd.regr = generatePartialDependenceData(fit.regr, bh.task, "lstat", fun = median)
plotPartialDependence(pd.regr)

lrn.classif = makeLearner("classif.ksvm", predict.type = "prob")
fit.classif = train(lrn.classif, iris.task)
pd.classif = generatePartialDependenceData(fit.classif, iris.task, "Petal.Length", fun = median)
plotPartialDependence(pd.classif)

regcalssfic

Benchmarking 基准点
plotBMRBoxplots(bmr=) 表现的分类图
plotBMRSummary(bmr=) 平均表现的散点图
plotBMRRanksAsBarChart(bmr=) learner 排序柱形图
Other 其他图
generateCritDifferencesData(bmr=,measure=,p.value=,test=) 执行临界差检验,用bonforroni-dunn(“bd”) 或"Nemenyi"检验
plotCritDifferences(obj=) 临界点检验可视化
generateCalibrationData(obj=) 评估概率预测与真实发生率的校准
plotCalibration(obj=) 校准图

12

Wrappers (封装器)

封装器使具有附加功能的学习者融合。mlr把带有封装器的learner看作一个单独的learner,超参数的封装也会与基础模型参数联合调谐。带包装的模型将应用于新数据。
wrappers

Preprocessing and imputation 预处理和插补
makeDummyFeaturesWrapper(learner=)
makeImputeWrapper(learner=,classes=,cols=)
makePreprocWrapper(learner=,train=,predict=)
makePreprocWrapperCaret(learner=,…)
makeRemoveConstantFeaturesWrapper(learner=)
Class imbance 类别不平衡
makeOverBaggingWrapper(learner=)
makeSMOTEWrapper(learner=)
makeUndersampleWrapper(learner=)
makeWeightedClassesWrapper(learner=)
Cost-sensitive 成本分析
makeCostSensClassifWrapper(learner=)
makeCostSensRegrWrapper(learner=)
makeCostSensWeightedPairsWrapper(learner=)
Multilabel classification 多标签分类
makeMultilabelBinaryRelevanceWrapper(learner=)
makeMultilabelClassifierChainsWrapper(learner=)
makeMultilabelDBRWrapper(learner=)
makeMultilabelNestedStackingWrapper(learner=)
makeMultilabelStackingWrapper(learner=)
Other 其他
makeBaggingWrapper(learner=)
makeConstantClassWrapper(learner=)
makeDownsampleWrapper(learner=,dw.perc=)
makeFeatSelWrapper(learner=,resampling=,control=)
makeFilterWrapper(learner=,fw.perc=,fw.abs=,fw.threshold=)
makeMultiClassWrapper(learner=)
makeTuneWrapper(learner=,resampling=,par.set=,control=)

Nested Resampling (嵌套重采样)

mlr支持嵌套重采样进行复杂操作,例如通过包装来调优和特征选择等。为了获得良好的泛化性能估计和避免数据泄漏,建议使用外部(用于调优/特征选择)和内部(对于基本模型)重采样过程。

  • 外部重采样能在resample, benchmark中被指定
  • 内部重采样能在makeTuneWrapper, makeFeatSelWrapper, etc中被指定

Ensembles (集成)

makeStackedLearner(base.learners=,super.learner=,method=)将多重learner集成
参数:

  • base.learners= 使用初始预测的learners
  • super.learner= 使用最终预测的learners
  • method= 组合base learners预测的方法
    “average”:所有base learners的平均
    “stack.nocv” “stack.cv”:在base learners的结果上训练super learner (with or without cross-validation)
    “hill.climb”:搜索最优权重平均
    “compress”:用神经网络实现更快的性能

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R手册(Machine Learning)--mlr (Part 2) 的相关文章

  • R手册(Tidy+Transform)--tidyr

    文章目录 Reshape Data Split or Unit Cells Handle Missing Values tidyr Easily tidy data with spread and gather functions Resh
  • R手册(Tidy+Transform)--缺失处理(naniar and simputation)

    文章目录 naniar 缺失数据摘要 阴影矩阵 可视化缺失值变量分布关系 simputation make imputation simpler for missing data 缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类 分组 删
  • R手册(Parallel Computing)--foreach

    R手册 Parallel Computing foreach foreach foreach 后端支持 library doParallel 为foreah包提供一个并行的后端 n cores lt detectCores logical
  • R手册(Tidy+Transform)--forcats

    forcats 分类变量数据处理 forcats for factor 函数 说明 factor x levels labels ordered as factor x fct expand f 添加更多级别 fct explicit na
  • R手册(Machine Learning)--mlr (Part 2)

    文章目录 Configuration 配置 Parallelization 并行 Imputation 插补 Feature Extraction 特征提取 1 Feature filtering 特征筛选 2 Feature select
  • R手册(Common)--R语言入门

    说明 本节中大部分内容摘自书籍 R语言实战 第2版 文章目录 RStudio Take control of your R code 数据处理一般流程 R 数据结构 R 运算符 概率函数 控制语句与循环语句 自定义函数 调试 拟合线性模型f
  • R手册(Import)--rvest

    文章目录 解析html 提取组件 提取 修改和提交形式的函数 浏览网站 解析html 函数 说明 read html x encoding x为a url或 a local path html nodes x css xpath 通过使用
  • R手册(Common)--tidyverse+tibble

    tidyverse是一系列包的组合 构建了一套完整的数据分析生态链 提供了一套整洁的数据导入 分析和建模方法 刷新了R语言原有的数据科学体系 文章目录 tidyverse Usage core tidyverse packages Impo
  • R手册(Common)--面向对象(R6 and S4)

    R 主要面向统计计算 似乎很少会用到面向对象的编程方法 但在统计计算中 在下列情形中使用面向对象的编程方法可以编程更有效率 文章目录 面向对象R6类 面向对象S4类 自定义S4类 实例化函数 S4的泛型函数 面向对象R6类 R 的面向对象
  • R手册(Visualise)--geomnet(ggplot2 extensions)

    文章目录 geomnet 返回ggplot2扩展主目录 geomnet Geom 网格图 关系图 geom net aes from id to id fontsize data stat net position identity na
  • R手册(Visualise)--ggplot2

    文章目录 Overview Geoms 基本图形 单变量 双变量 三变量 文本 误差可视化 地图 Stats Scales 常用标尺格式 坐标轴标尺 Color and fill scales Shape and size scales C
  • R手册(Common)--R语言基础包

    文章目录 环境设置 输入输出 文件操作 进度条 数据创建 数据选取及数据信息 列联表 内置常量 数学 矩阵运算 模型 其他函数 R语言基础包 base stats 环境设置 系统函数 函数 说明 options 显示或设置当前选项 digi
  • R手册(NLP)--wordcloud2

    文章目录 wordlcoud2函数 letterCloud函数 shiny支持 wordcloud2 R interface to wordcloud for data visualization Wordcloud2主要包括两个函数 wo
  • R手册(Syntax)--magrittr

    magrittr pipe lhs gt rhs forward pipe lhs为rhs第一个参数时 x gt f y 等价于 f x y lhs在任意位置时 用点 代替 z gt f x y arg 等价于 f x y arg z rh
  • R手册(Time Series)--forecast and prophet

    文章目录 forecast for Time Series and Linear Models 时间序列分析 模型 预测 ggplot2扩展 模型评估 prophet 构建模型 模型预测 可视化 交叉验证 时间序列分析 Time Serie
  • R手册(NLP)--text2vec

    文章目录 分词器 I O 处理 迭代器 支持 create 函数 向量化 主题模型 text2vec 这个 R 包提供了高性能和简洁的 API 来进行文本分析 自然语言处理 分词器 word tokenizer strings 英语分词器
  • R手册(Common)--data.table

    R语言data table包是自带包data frame的升级版 用于数据框格式数据的处理 最大的特点快 包括两个方面 一方面是写的快 代码简洁 只要一行命令就可以完成诸多任务 另一方面是处理快 内部处理的步骤进行了程序上的优化 使用多线程
  • R手册(Communicate)--R Markdown

    文章目录 Overview Rmd Structure YAML Header Parameters Set render options with YAML 初始文档信息 Text Embed code with knitr syntax
  • R手册(Visualise)--gganimate(ggplot2 extensions)

    文章目录 gganimate Create easy animations with ggplot2 返回ggplot2扩展主目录 gganimate Create easy animations with ggplot2 GitHub链接
  • R手册(Visualise)--GGally(ggplot2 extensions)

    本站已停止更新 查看最新内容请移至本人博客 Wilen s Blog 文章目录 GGally ggmatrix ggplot2矩阵 ggpairs ggplot2广义配对图 ggscatmat 纯粹定量变量的传统散点图矩阵 返回ggplot

随机推荐

  • win7下安装高版本的nodejs16及以上版本

    win7下安装nodejs16 4 0 1 nodejs下载地址 https nodejs org dist v13 9 0 https nodejs org dist latest v16 x 2 通过以上路径 分别下载下面资源包 nod
  • SpringMVC拦截器

    1 拦截器的三个抽象方法 SpringMVC中的拦截器有三个抽象方法 preHandle 控制器方法执行之前执行preHandle 其boolean类型的返回值表示是否拦截或放行 返回true为放行 即调用控制器方法 返回flse表示拦截
  • 【分享】原力计划的初衷 【探讨】新的一年,你对原力计划有哪些期待?

    课前小差 哈喽 大家好 我是几何心凉 这是一份全新的专栏 唯一得倒CSDN王总的授权 来对于我们每周四的绿萝时间 直达CSDN 直播内容进行总结概括 让大家能够省去看直播回放的时间也能够了解直播内容和官方的最新动态 希望大家给予凉哥最大的支
  • 【阿里三面】好险!本以为是场普通的阿里面试,没想到二面就迎来了P9大佬

    前言 阿里 我是在BOSS上投的简历 之前也投过一次 简历都没通过筛选 后来让前辈帮我改了一下简历 重新投另一个部门 获得了面试机会 5月15日 中午HR打电话过来预约了下午4点半面试 说会在线笔试 让我准备好 一面 70分钟 突击电话面试
  • 基于FPGA的正弦波发生器设计与实现

    基于FPGA的正弦波发生器设计与实现 摘要 本文介绍了一种基于FPGA的正弦波发生器的设计与实现 通过使用FPGA的数字信号处理功能 可以实现高精度 高性能的正弦波生成 文章首先介绍了DDS Direct Digital Synthesis
  • 大骗局星钻共享拍卖不为人知的的秘密

    钻石恒久远 一颗永流传 作为当之无愧的宝石之王 钻石从开采到初步打磨再到深层加工最后到售卖 需要经历无数道工序流程 平均每开采一克拉的钻石胚 需要至少处理250吨的矿石 而这一克拉的钻石胚还需要经过切磨雕琢 最后以闪耀动人的钻石成品面世时
  • vue自定义校验规则的动态必填字段

  • 10秒学会codeblocks里批量替换变量名

    10秒学会codeblocks里批量替换变量名 我想把下面代码所有的frontt改成front 应该怎么做呢 typedef struct QueueElementType element MAXSIZE int frontt int re
  • Latex基本使用

    一 文字 加粗 textbf 文字 加颜色 textcolor 颜色 文字 如 textcolor cyan TABLE II 一个单词的首字母下沉占用两行 单词剩余部分大写 IEEEPARstart 单词首字母 单词剩余部分 如 IEEE
  • Linux下的FILE*结构体

    FILE 结构体解析 struct file结构体定义在include Linux fs h中定义 文件结构体代表一个打开的文件 系统中的每个打开的文件在内核空间都有一个关联的 struct file 它由内核在打开文件时创建 并传递给在文
  • 笔记本网络计算机和设备不可见,xp电脑不显示无线网络的七种原因和解决方法...

    xp纯净版系统电脑打开后发现桌面右下角不显示无线网络 如果要设置无线网络都不知道从哪里下手 这到底是怎么回事 造成xp系统不显示无线网络的原因有很多种 下面和大家讲解一下xp电脑不显示无线网络的七种原因和解决方法 故障原因 一 无线网卡驱动
  • k8s config多集群管理

    k8s config多集群管理 contexts 查看 kubectl config get contexts 创建 kubectl config set context my context 修改 kubectl config set c
  • pycharm整体缩进,整体取消缩进

    整体缩进 tab 整体取消缩进 tab shift
  • [游戏商业化]一些基础概念点,做个记录

    A 商业化业务逻辑 核心 三者之间的关系 产品的最终目标是实现盈利 获取利润 产品的主要目标是发展用户 吸引用户 留下用户 通过投放产品广告为产品带来用户 变现 广告变现 是最简单 最有效且不存在领域限制的变现方式 通过在App上展示广告主
  • 数据结构--- 树

    一 知识补充 定义 树是一种数据结构 它是由n n 0 个有限节点组成一个具有层次关系的集合 把它叫做 树 是因为它看起来像一棵倒挂的树 也就是说它是根朝上 而叶朝下的 它具有以下的特点 每个节点有零个或多个子节点 没有父节点的节点称为根节
  • 独家专访BlockCity区块城市徐志翔:DAO是未来元宇宙的核心

    转载说明 最近随着ChatGPT的出圈 整个AIGC领域倍受关注 唱衰媒体人的声音也开始不绝于耳 但看到这样有质量的长文 我想也不是每个媒体人都将会被AI替代吧 本文来自前瞻 元宇宙观察 专栏记者采访 作者声明分享无版权限制 如下为全文内容
  • 基础算法题 —— 合唱队(最长递增子序列)

    题解 枚举每个位置左右侧分别所能站的做多人 自左向右递增 求每个位置左边最多可站多少人 含自己 dp1 自右向左递增 求每个位置右边最多可站多少人 含自己 dp2 选择第 i 个位置不移动的情况下 合唱队所能站的人数 dp1 i dp2 i
  • 学习文件day20--关于File

    java io File File的每一个实例用于表示硬盘上的一个文件或目录 实际上表示的是一个抽象路径 File可以 1 访问其表示的文件或目录的属性信息 名字 大小 修改时间等 2 操作文件或目录 创建 删除 3 访问一个目录中的所有子
  • Flutter之瀑布流效果——Flutter基础系列

    需求 相信android和ios的瀑布流效果大家都试过 网上有很多实现方法和开源库 今天我来为大家介绍一下如何在Flutter中实现瀑布流 整理一下方便以后学习 顺便分享给大家 一 生成二维码 1 导入依赖 在 pubspec yaml 中
  • R手册(Machine Learning)--mlr (Part 2)

    文章目录 Configuration 配置 Parallelization 并行 Imputation 插补 Feature Extraction 特征提取 1 Feature filtering 特征筛选 2 Feature select