R随机森林交叉验证 + 进度条
- library(data.table)
- library(randomForest)
- data <- iris
- str(data)
- #交叉验证,使用rf预测sepal.length
- k = 5
- data$id <- sample(1:k, nrow(data), replace = TRUE)
- list <- 1:k
- # 每次迭代的预测用数据框,测试用数据框
- # the folds
- prediction <- data.table()
- testsetCopy <- data.table()
- # 写一个进度条,用来了解CV的进度
- progress.bar <- create_progress_bar("text")
- progress.bar$init(k)
- #k层的函数
- for(i in 1:k){
- # 删除id为i的行,创建训练集
- # 选id为i的行,创建训练集
- trainingset <- subset(data, id %in% list[-i])
- testset <- subset(data, id %in% c(i))
- #运行一个随机森林模型
- mymodel <- randomForest(trainingset$Sepal.Length ~ ., data = trainingset, ntree = 100)
- #去掉回应列1, Sepal.Length
- temp <- as.data.frame(predict(mymodel, testset[,-1]))
- # 将迭代出的预测结果添加到预测数据框的末尾
- prediction <- rbind(prediction, temp)
- # 将迭代出的测试集结果添加到测试集数据框的末尾
- # 只保留Sepal Length一列
- testsetCopy <- rbind(testsetCopy, as.data.frame(testset[,1]))
- progress.bar$step()
- }
- # 将预测和实际值放在一起
- result <- cbind(prediction, testsetCopy[, 1])
- names(result) <- c("Predicted", "Actual")
- result$Difference <- abs(result$Actual - result$Predicted)
- # 用误差的绝对平均值作为评估
- summary(result$Difference)
交叉验证伪代码
- for each epoch
- for each training data instance
- propagate error through the network
- adjust the weights
- calculate the accuracy over training data
- for each validation data instance
- calculate the accuracy over the validation data
- if the threshold validation accuracy is met
- exit training
- else
- continue training
R随机森林交叉验证 + 进度条的更多相关文章
- Android -- 自定义StepView实现个人信息验证进度条
1,项目中要用到个人信息验证的在网上找了一下,好像有封装好了的StepView,首先感谢一下作者,这是作者的地址,效果图如下: 2,正准备撸起袖子就是一顿复制粘贴的时候,发现效果图成这个样子了(其实这 ...
- Android View 之进度条+拖动条+星级评论条....
PS:将来的你会感谢现在奋斗的自己.... 学习内容: 1.进度条 2.拖动条 3.星级评论条 1.进度条... 进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此 ...
- Android——ProgressDialog 进度条对话框
public class ProgressDialogActivity extends Activity { private Button btn_large_pd, btn_horizonta ...
- Linux终端彩色打印+终端进度条【转】
转自:https://my.oschina.net/jcseg/blog/178047 开发的一个应用程序选择了终端界面, 为了使软件稍微好看些, 研究下Linux终端的彩色打印, 并且基于这个彩色打 ...
- Android 显示或隐藏标题栏进度条TitleProgressBar
1.新建项目,布局文件如下:activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/ ...
- Android 进度条对话框ProgressDialog
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- Android进度条控件ProgressBar使用
ProgressBar有四种样式,圆形的(大,中,小)和直条形的(水平) 对应的style为 <LinearLayout xmlns:android="http://schemas.a ...
- ProgressDialog 进度条的初步认识
public class MainActivity extends Activity implements View.OnClickListener{ private ProgressBar prog ...
- 什么是机器学习的分类算法?【K-近邻算法(KNN)、交叉验证、朴素贝叶斯算法、决策树、随机森林】
1.K-近邻算法(KNN) 1.1 定义 (KNN,K-NearestNeighbor) 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类 ...
随机推荐
- public,private,protected,以及default时的区别
作用域 当前类 同一package 子孙类 其他package public √ √ √ ...
- LINQ解析
Linq 是什么? Linq是Language Integrated Query的缩写,即“语言集成查询“的意思,Linq的提出就是为了提供一种跨各种数据源统一查询方式,主要包含四种组件:Linq t ...
- mysql数据库通过二进制 -【恢复数据记录】
1.修改配置文件 vi /etc/my.cnf log-bin = binlog systemctl restart mysqld mysql -uroot -p123456 mysql> sh ...
- 《Java程序设计》win10系统学前准备
<Java程序设计>win10系统学前准备 Git的安装 在https://gitforwindows.org/中下载git for windows,下载完成后进行安装.当安装进行到这一步 ...
- Python 小节回顾
1.python程序是大小写敏感. 2.python中字符串是用单引号 ' 或双引号 " 括起来的任意文本. python中用 r ' ' 表示 ' ' 内部的字符串不转义. 3.在pyt ...
- Canvas---clearRect()清除圆形区域
function clearArcFun(x,y,r,cxt){ //(x,y)为要清除的圆的圆心,r为半径,cxt为context var stepClear=1;//别忘记这一步 clearArc ...
- [poj P2411] Mondriaan's Dream
[poj P2411] Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18023 A ...
- 浅谈jQuery的promise
jquery中的Promise,也就是我们所知道的Deferred对象. 举例1: var data=""; function runAsync(){ var def = $.De ...
- django中的ORM介绍和字段及字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Go used as value问题
练习Go变参时遇到一个报错:used as value 代码如下: // 错误代码 func myfunc(arg ...int) { for _, n := range arg { fmt.Prin ...