- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 R 中使用 caret。我的最终目标是提交不同的数据帧以分离 preProcess pca,然后将 PCA 组件放在一起进行岭回归训练。但是,请参见下面的示例代码,其中在训练函数内与外/前训练函数中在 preProcess 中应用 pca 时,我没有得到相同的结果。
#Sample data
s <- c(-0.412440717220306, -0.459911376237869, -0.234769582748413, -0.332282930612564, -0.486973077058792, -0.301480442285538, -0.181094691157341, -0.240918189287186, 0.0962697193026543, -0.119731709361076, -0.389783203601837, -0.217093095183372, -0.302948802709579, -0.406619131565094, 0.247409552335739, -0.406119048595428, 0.0574243739247322, -0.301231145858765, -0.229316398501396, -0.0620433799922466)
t <- c(0.20061232149601, 0.0536709427833557, 0.530373573303223, 0.523406386375427, 0.267315864562988, 0.413556098937988, 0.274257719516754, 0.275401413440704, 0.634453296661377, 0.145272701978683, 0.196711808443069, 0.332845687866211, 0.345706522464752, 0.444085538387299, 0.253269702196121, 0.231440827250481, -0.196317762136459, 0.49691703915596, 0.43754768371582, 0.0106721892952919)
u <- c(-0.565160751342773, 0.377725303173065,-0.273447960615158, -0.338064402341843, -0.59904420375824, -0.780133605003357,-0.508388638496399, -0.226167500019073, -0.257708549499512, -0.349863946437836,-0.443032741546631, -0.36387038230896, -0.455201774835587, -0.137616977095604,0.130770832300186, -0.420618057250977, -0.125859051942825, -0.382272869348526, -0.355217516422272, -0.0601325333118439)
v <- c(-0.45850995182991, -0.0105021595954895, -0.475157409906387, -0.325350821018219, -0.548444092273712, -0.562069535255432, -0.473256289958954, -0.492668628692627, -0.205974608659744, -0.266964733600616, -0.289298176765442, -0.615423858165741, -0.261823982000351, -0.472221553325653, -0.684594392776489, -0.42777806520462, -0.240604877471924, -0.589631199836731, -0.782602787017822, -0.468854814767838)
w <- c(-0.886135756969452, -0.96577262878418,-0.755464434623718, -0.640497982501984, -0.849709093570709, -0.837802410125732, -0.659287571907043, -0.646972358226776, 0.0532735884189606, -0.646163880825043,-0.963890254497528, -0.91286826133728, -1.10484659671783, -0.596551716327667, -0.371927708387375, -0.684276521205902, -0.55376398563385, -0.969008028507233, -0.956810772418976, -0.0229262933135033)
y <- c(9, 26, 30, 15, 25, 30, 30, 35, 35, 30, 21, 30, 9, 33, 31, 34, 29, 35, 25, 31)
#Sample data for procedure 1 and 2
df_test1 <- data.frame(s, t, u, v, w)
df_test2 <- df_test1
#PROCEDURE 1: preProcess (pca) applied WITHIN "train" function
library(caret)
ytrain_df_test <- c(1:nrow(df_test1)) # number of observation that should be split in to the number of folds.
ntrain <- length(ytrain_df_test)
# define folds
cv_folds <- createFolds(ytrain_df_test, k = 10, list = TRUE, returnTrain = TRUE) #, ...)
# define training control
train_control <- trainControl(method="cv", index = cv_folds, savePredictions = 'final') #, ...)
#adding y
df_test1$y <- y
# train the model
set.seed(1)
model1 <- caret::train(y~., data=df_test1, trControl=train_control, method= 'ridge', preProcess = 'pca')
output1 <- list(model1, model1$pred, summary(model1$pred), cor.test(model1$pred$pred, model1$pred$obs))
names(output1) <- c("Model", "Model_pred", "Summary", "Correlation")
output1
#PROCEDURE 2: preProcess (pca) applied OUTSIDE/BEFORE "train" function
ytrain_df_test <- c(1:nrow(df_test2)) # number of observation that should be split in to the number of folds.
ntrain <- length(ytrain_df_test)
df2 <- preProcess(df_test2, method="pca", thresh = 0.95)
df_test2 <- predict(df2, df_test2)
df_test2$y <- y
df_test2
# define folds
cv_folds <- createFolds(ytrain_df_test, k = 10, list = TRUE, returnTrain = TRUE)
# define training control
train_control <- trainControl(method="cv", index = cv_folds, savePredictions = 'final')
# train the model
set.seed(1)
model2 <- caret::train(y~., data=df_test2, trControl=train_control, method= 'ridge') #, preProcess = 'pca')
model2
output2 <- list(model2, model2$pred, summary(model2$pred), cor.test(model2$pred$pred, model2$pred$obs))
names(output2) <- c("Model", "Model_pred", "Summary", "Correlation")
output2```
最佳答案
1.
当您在 train 函数中执行 preProcess (pca) 时:
library(mlr3pipelines)
library(visNetwork)
library(mlr3learners)
library(mlr3tuning)
library(mlr3)
library(paradox)
pos1 <- po("select", id = "slct1")
pos1$param_set$values$selector <- selector_name(c("Sepal.Length", "Sepal.Width"))
pos1 %>>%
mlr_pipeops$get("scale", id = "scale1") %>>%
mlr_pipeops$get("pca", id = "pca1") -> pr1
pos2 <- po("select", id = "slct2")
pos2$param_set$values$selector <- selector_name(c("Petal.Length", "Petal.Width"))
pos2 %>>%
mlr_pipeops$get("scale", id = "scale2") %>>%
mlr_pipeops$get("pca", id = "pca2") -> pr2
piper <- gunion(list(pr1, pr2)) %>>%
mlr_pipeops$get("featureunion")
graph <- piper %>>%
mlr_pipeops$get("learner",
learner = mlr_learners$get("classif.rpart"))
graph$plot(html = TRUE)
glrn <- GraphLearner$new(graph)
cv10 <- rsmp("cv", folds = 10)
ps <- ParamSet$new(list(
ParamDbl$new("classif.rpart.cp", lower = 0, upper = 1),
ParamInt$new("pca1.rank.", lower = 1, upper = 2),
ParamInt$new("pca2.rank.", lower = 1, upper = 2)
))
task <- mlr_tasks$get("iris")
instance <- TuningInstance$new(
task = task,
learner = glrn,
resampling = cv10,
measures = msr("classif.ce"),
param_set = ps,
terminator = term("evals", n_evals = 20)
)
tuner <- TunerRandomSearch$new()
tuner$tune(instance)
instance$result
cp
一起调整。超参数。这是在这一行中定义的:
ps <- ParamSet$new(list(
ParamDbl$new("classif.rpart.cp", lower = 0, upper = 1),
ParamInt$new("pca1.rank.", lower = 1, upper = 2),
ParamInt$new("pca2.rank.", lower = 1, upper = 2)
))
pipeop
像这样:
pos1 %>>%
mlr_pipeops$get("scale", id = "scale1") %>>%
mlr_pipeops$get("pca", id = "pca1", param_vals = list(rank. = 1)) -> pr1
ps <- ParamSet$new(list(
ParamDbl$new("classif.rpart.cp", lower = 0, upper = 1)
))
learner <- mlr_pipeops$get("learner",
learner = mlr_learners$get("classif.rpart"))
learner$learner$predict_type <- "prob"
graph <- piper %>>%
learner
instance$archive(unnest = "params")
lapply(as.list(instance$archive(unnest = "params")[,"resample_result"])$resample_result,
function(x) x$predictions())
instance$best()$predictions()
do.call(rbind,
lapply(instance$best()$predictions(),
function(x) data.frame(x$data$tab,
x$data$prob)))
关于R 插入符号 : How do I apply separate pca to different dataframes before training?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59452615/
这个问题在这里已经有了答案: Joining elements of a list in GNU Make (3 个回答) 2年前关闭。 我有这个: FOO = foo1 foo2 ... fooN
我们有两种产品在客户现场实现,其中一个需要另一个在场。我在与附加组件所需的数据库对象的主要产品相同的数据库中实现了一个单独的模式。因为该附加组件理论上也可以成为 future 产品的附加组件(尽管目前
它的作用:这是一个 Android 应用程序,将模仿我的团队正在创建的网站 apdata.info。这是第二页,它将显示符合他们请求的搜索的机场。 PHP ... $sql = "SELECT apn
我在 Angular 4 中使用 slider 。下面是我的 HTML 代码: Actual/Optimised
Linux RHEL5 机器 如何对以下输入进行排序以在 latest 变量中获取 1.0.0.1019?尝试了 -t、-k 和 -n 但没有帮助,或者可能是我遗漏了什么。 $ echo '1.0.0
因此,我有一个值为“app、beta、theta”的单元格,我想查看填充有上述单元格的列是否包含我的单元格值。例如:AA 列有这些单元格:“app”; “theta,应用程序”; “theta,app
我想读取一个包含多个(未终止的)Kafka 主机的字符串,并使用 cmd for 将它们列出在单独的行中。 字符串如下: host1:9092,host2:9092,host3:9092,... 我所
我突然想到,例如,假设我们有二维 N 点的训练数据。我们知道我们总是可以天真地构建一个决策树,以便我们可以对每个数据点进行分类。 (可能我们过拟合了,深度可以到2N) 但是,我们知道如果数据集是线性可
我知道这是一件奇怪的事情,但现在我正在构建一个测试项目,并且我将正在测试的应用程序的几个区域/容器分开在不同的类中,如保持组织的措施。因此,如果我想将一个元素从区域 A 拖动到区域 B,我必须将 D&
你好, 在编写 XSLT 样式表时,我遇到了一个无法解决的问题。我的基本 XML 结构如下 我想打印所有列的名称。因此,我使用了以下语句(我正在遍历所有 nonUniqueConstr
单一职责原则和关注点分离有什么区别? 最佳答案 Single Responsibility Principle (SRP)- give each class just one reason to ch
如何获取指定文件/文件夹路径的文件分隔符? 在Java中,我们可以这样写 File f = new File("C:\\MyFolder\\MyText.txt"); 请记住,这是一种文件表示(该文件
我正在开始开发一个新程序(用于学校项目),其中用户登录并有一个类似“时间线”的页面。目前它是一个简单的命令行 C 项目。 我想通过以下方式将数据存储在文本文件中: # Message here
我正在将 UIView(作为容器 View )添加到 UITableViewController。出于某种原因,UITableView 分隔符通过 UIView 可见。我运行的是 iOS 7。 UIV
产品代码在 UNIX 上运行,但需要在 Windows 上运行本地 DEV。 当前代码从数据库获取 UNIX 格式的路径,然后使用 file.separator 在该路径上构建,它添加了窗口分隔符,导
我正在使用 Eclipse 和本地服务器(如 XAMPP)在 Windows 中开发我的企业应用程序项目。 要从文件系统(部署文件夹外部)加载配置,我使用: String dataOrdner = S
我刚刚使用 iTextSharp 从 pdf 中获取所有文本,现在我需要将该文本拆分为单词。我以前使用 Acrobat 库,它会自动将它分成单词(使用 getPageNthWord())。 我不知道使
在WPF的集合控件中常常需要在每一个集合项之间插入一个分隔符样式,但是WPF的ItemsControl没有相关功能的直接实现,所以只能考虑曲线救国,经过研究,大概想到了以下两种实现方式。 先写出I
出现如下错误 Groovy script throws an exception of type class java.util.regex.PatternSyntaxException with m
请问有没有语法来分隔“for”标签中的某些元素? 例如我有一个用户列表,我想用“-”分隔符显示他们的用户名,所以预期的结果是:Mickael - Dave - Chris - ... 我找到了这个解决
我是一名优秀的程序员,十分优秀!