caret包应用之二:特征选择
来源:互联网 发布:php云标签 编辑:程序博客网 时间:2024/06/06 01:28
caret包应用之二:特征选择
在进行数据挖掘时,我们并不需要将所有的自变量用来建模,而是从中选择若干最重要的变量,这称为特征选择(feature selection)。一种算法就是后向选择,即先将所有的变量都包括在模型中,然后计算其效能(如误差、预测精度)和变量重要排序,然后保留最重要的若干变量,再次计算效能,这样反复迭代,找出合适的自变量数目。这种算法的一个缺点在于可能会存在过度拟合,所以需要在此算法外再套上一个样本划分的循环。在caret包中的rfe命令可以完成这项任务。
首先定义几个整数,程序必须测试这些数目的自变量.
method是确定用什么样的抽样方法,本例使用cv即交叉检验, 还有提升boot以及留一交叉检验LOOCV
下面的命令则可以返回最终保留的自变量
首先定义几个整数,程序必须测试这些数目的自变量.
subsets = c(20,30,40,50,60,70,80)然后定义控制参数,functions是确定用什么样的模型进行自变量排序,本例选择的模型是随机森林即rfFuncs,可以选择的还有lmFuncs(线性回归),nbFuncs(朴素贝叶斯),treebagFuncs(装袋决策树),caretFuncs(自定义的训练模型)。
method是确定用什么样的抽样方法,本例使用cv即交叉检验, 还有提升boot以及留一交叉检验LOOCV
ctrl= rfeControl(functions = rfFuncs, method = "cv",verbose = FALSE, returnResamp = "final")最后使用rfe命令进行特征选择,计算量很大,这得花点时间
Profile = rfe(newdata3, mdrrClass, sizes = subsets, rfeControl = ctrl)观察结果选择50个自变量时,其预测精度最高
print(Profile)
Variables Accuracy Kappa AccuracySD KappaSD Selected
用图形也可以观察到同样结果20 0.8200 0.6285 0.04072 0.08550 30 0.8200 0.6294 0.04868 0.10102 40 0.8295 0.6487 0.03608 0.07359 50 0.8313 0.6526 0.04257 0.08744 * 60 0.8277 0.6447 0.03477 0.07199 70 0.8276 0.6449 0.04074 0.08353 80 0.8275 0.6449 0.03991 0.08173 94 0.8313 0.6529 0.03899 0.08006
plot(Profile)
下面的命令则可以返回最终保留的自变量
Profile$optVariables
0 0
- caret包应用之二:特征选择
- caret包应用之二:特征选择
- R语言之-caret包应用
- caret包应用之三:建模与参数优化
- caret包应用之四:模型预测与检验
- R语言的特征选择(Feature Selection)包:Boruta和caret
- caret包应用之一:数据预处理
- caret包应用之一:数据预处理
- 《特征工程三部曲》之二:特征选择
- 特征选择之二:信息增益
- caret包处理流程
- caret包处理流程
- [Sklearn应用6] Feature Selection 特征选择(二)
- R语言利用caret包对变量重要程度排序与选择特性
- caret包函数不完全解析
- 模型选择之特征选择
- 特征选择之词频
- Spark之特征选择
- WampServer Install
- mysql忽略主键冲突、避免重复插入的几种方式
- java static 小知识
- Python 练习实例12
- Prim算法
- caret包应用之二:特征选择
- 读了几篇boosting文献的收获
- Android设备通过fastboot刷入TWRP
- ASM(active shape models)算法介绍
- Hexo系列1:从零开始搭建hexo博客
- 视频自动生成字幕、ASR技术与在线教育
- LeetCode 304. Range Sum Query 2D - Immutable
- 04. Qt做图像处理经验
- Essbase 各类型错误日志所在路径