数据分析整理,R,caret包(1)

2024-03-17 09:08
文章标签 整理 数据分析 caret

本文主要是介绍数据分析整理,R,caret包(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

caret包可以处理至少以下事情.
1、初步筛选属性(过滤以下属性)
a、找出 属性值接近为常数的 属性 nearZeroVar
b、找出 相关系数最大的        属性 findCorrelation
c、找出 多重共线性的           属性 findLinearCombos

2、处理缺失值 
preProcess(data, method=c("bagImpute","knnImpute"));predict(pro, newdata)

3、中心化、标准化
preProcess(data, method=c("center","scale"))

4、特征选择
rfeControl,rfe

sbfControl,sbf

5、抽样数据划分
createDataPartition()
createFold()…

6、模型训练
trainControl():设置训练交叉验证的重数,重复几次等
train(): 设置使用何种模型训练(查看函数定义[非常之多])

7、预测结果
predict()




library(C50)

library(lattice)
library(ggplot2)
library(caret)


#多药耐药逆转剂

#528 obs. of  342 variables

#528个化合物,342个描述符

data(mdrr)

# 0 variance

newdata <- mdrrDescr[, -nearZeroVar(mdrrDescr)]
# high cor
descrCorr <- cor(newdata)
newdata2 <- newdata[, -findCorrelation(descrCorr)]


# 去掉共线性(如果存在)
comboInfo <- findLinearCombos(newdata2)
if(!is.null(comboInfo)){
  newdata3 <- newdata2[, -comboInfo$remove]



# 如果有缺失值,使用bagImpute,knnImpute进行计算填补
if(nrow(newdata2[!complete.cases(newdata2),])!=0)
{
  process <- preProcess(newdata2, method="bagImpute")
  pre <- predict(process, newdata2)
}


# feather selection
# 产生检测属性个数的序列
subsets <- seq(2, ncol(newdata2), by=2)




# define sbfControl
sbfControls_rf <- sbfControl(  functions = rfSBF,  method = 'cv',  repeats = 5)



# sbf: feature selection
pro <- sbf(newdata2, mdrrClass, sizes = subsets, sbfControl=sbfControls_rf)
summary(pro)


# feature selected variables
pro$optVariables


# 训练模型
# 获取特征选择后的属性
newdata4 <- newdata2[, pro$optVariables]


# 训练数据和测试数据


index <- createDataPartition(mdrrClass, p=3/4, list=F)


trainx <- newdata4[index,]
trainy <- mdrrClass[index]


testx <- newdata4[-index,]
testy <- mdrrClass[-index]
# 设置模型训练参数并拟合模型
fitControl <- trainControl(method="repeatedcv", number=10, repeats=3, returnResamp="all")


gbmGrid <- expand.grid(interaction.depth=c(1,3), n.trees=seq(50,300,by=50), shrinkage=0.1,n.minobsinnode = 20)


gbmFit1 <- train(trainx, trainy, method="gbm", trControl=fitControl, tuneGrid= gbmGrid, verbose=F)
trainControl

png("foo.png",family="GB1")
plot(gbmFit1)


dev.off()



# 使用训练好的模型进行predict
predict(gbmFit1, newdata=testx)
# 混淆矩阵查看结果
table(testy, predict(gbmFit1, newdata=testx))


testy      Active Inactive
  Active       61       13
  Inactive     12       45



# 使用另外的模型(装袋法)
gbmFit2 <- train(trainx, trainy, method="treebag", trControl=fitControl)
table(testy, predict(gbmFit2, newdata=testx))


testy      Active Inactive
  Active       64       10
  Inactive     13       44



models <- list(gbmFit1, gbmFit2);


predValues <- extractPrediction(models, testX=testx, testY=testy)

# predValues <- extractPrediction(models, testX=testx)


      obs     pred model dataType  object
1   Active   Active   gbm Training Object1
2   Active   Active   gbm Training Object1
3 Inactive Inactive   gbm Training Object1
4   Active Inactive   gbm Training Object1
5   Active   Active   gbm Training Object1
6   Active   Active   gbm Training Object1

这篇关于数据分析整理,R,caret包(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/818501

相关文章

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

rtmp流媒体编程相关整理2013(crtmpserver,rtmpdump,x264,faac)

转自:http://blog.163.com/zhujiatc@126/blog/static/1834638201392335213119/ 相关资料在线版(不定时更新,其实也不会很多,也许一两个月也不会改) http://www.zhujiatc.esy.es/crtmpserver/index.htm 去年在这进行rtmp相关整理,其实内容早有了,只是整理一下看着方

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern

JavaScript整理笔记

JavaScript笔记 JavaScriptJavaScript简介快速入门JavaScript用法基础语法注释关键字显示数据输出innerHTML innerText属性返回值的区别调试 数据类型和变量数据类型数字(Number)字符串(String)布尔值(Boolean)null(空值)和undefined(未定义)数组(Array)对象(Object)函数(Function) 变量

关于回调函数和钩子函数基础知识的整理

回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:   你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做完后给你打电话,我就打给你了,你拿到我的成果加到你的工作中,继续完成其它的工作.这就叫回叫,手机

站长常用Shell脚本整理分享(全)

站长常用Shell脚本整理分享 站长常用Shell脚本整理分享1-10 站长常用Shell脚本整理分享11-20 站长常用Shell脚本整理分享21-30 站长常用Shell脚本整理分享31-40 站长常用Shell脚本整理分享41-50 站长常用Shell脚本整理分享51-59 长期更新