小编Stu*_*olf的帖子

如何从 R 中的引导导出结果?

我有一个包含 540 个观测值的时间序列,我使用以下代码对其进行了 999 次重新采样:

boot.mean = function(x,i){boot.mean = mean(x[i])}
z1 = boot(x1, boot.mean, R=999)
z1
ORDINARY NONPARAMETRIC BOOTSTRAP

Call:
boot(data = x1, statistic = boot.mean, R = 999)

Bootstrap Statistics :
        original        bias    std. error
t1* -0.009381397 -5.903801e-05 0.002524366
Run Code Online (Sandbox Code Playgroud)

尝试导出结果给了我以下错误:

write.csv(z1, "z1.csv")

Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : 
  cannot coerce class ""boot"" to a data.frame
Run Code Online (Sandbox Code Playgroud)

如何将结果导出到 .csv 文件?

我期望获得一个包含 540 个观察 999 次的文件,目标是应用包中的approx_entropy函数pracma,获得 999 个近似熵值并绘制 Latex 中的分布。

r export-to-csv statistics-bootstrap

3
推荐指数
1
解决办法
1133
查看次数

关于数值变量和标签的 xgboost 错误消息

xgboost在 R 中使用该函数,但收到以下错误消息

bst <- xgboost(data = germanvar, label = train$Creditability, max.depth = 2, eta = 1,nround = 2, objective = "binary:logistic")

Error in xgb.get.DMatrix(data, label, missing, weight) : 
  xgboost only support numerical matrix input,
           use 'data.matrix' to transform the data.
In addition: Warning message:
In xgb.get.DMatrix(data, label, missing, weight) :
  xgboost: label will be ignored.
Run Code Online (Sandbox Code Playgroud)

以下是我的完整代码。

credit<-read.csv("http://freakonometrics.free.fr/german_credit.csv", header=TRUE)
library(caret)
set.seed(1000)
intrain<-createDataPartition(y=credit$Creditability, p=0.7, list=FALSE) 
train<-credit[intrain, ]
test<-credit[-intrain, ]


germanvar<-train[,2:21]
str(germanvar)
bst <- xgboost(data = germanvar, label = train$Creditability, …
Run Code Online (Sandbox Code Playgroud)

r gbm xgboost

3
推荐指数
1
解决办法
5381
查看次数

从 caret::train 获取预测的置信区间

我试图弄清楚如何从插入符::训练线性模型中获取置信区间。

我的第一次尝试只是使用通常的 lm 置信区间参数来运行预测:

m <- caret::train(mpg ~ poly(hp,2), data=mtcars, method="lm")
predict(m, newdata=mtcars, interval="confidence", level=0.95)
Run Code Online (Sandbox Code Playgroud)

但看起来从 caret::train 返回的对象没有实现这个。

我的第二次尝试是提取最终模型并对此进行预测:

m <- caret::train(mpg ~ poly(hp,2), data=mtcars, method="lm")
fm <- m$finalModel
predict(fm, newdata=mtcars, interval="confidence", level=0.95)
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

Error in eval(predvars, data, env) : object 'poly(hp, 2)1' not found
Run Code Online (Sandbox Code Playgroud)

深入挖掘,最终模型似乎对公式有一些奇怪的表示,并且正在我的新数据中搜索“poly(hp, 2)1”列,而不是评估公式。m$finalModel 看起来像这样:

Call:
lm(formula = .outcome ~ ., data = dat)

Coefficients:
   (Intercept)  `poly(hp, 2)1`  `poly(hp, 2)2`  
         20.09          -26.05           13.15
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,我不只是使用lm,因为我使用插入符号通过交叉验证来拟合模型。

如何通过 caret::train 从线性模型拟合中获取置信区间?

r r-caret

3
推荐指数
1
解决办法
2169
查看次数

如何扩展逻辑回归图?

这是我创建的情节我在 R 上创建了一个逻辑模型,问题是我的最大 x 值是 0.85,因此图在这个值处停止。

有没有办法可以将其扩展到使用我的逻辑模型计算的 x=100 和 y 值?

library(caret)
library(mlbench)
library(ggplot2)
library(tidyr)
library(caTools)

my_data2 <- read.csv('C:/Users/Magician/Desktop/R files/Fnaticfirstround.csv', header=TRUE, stringsAsFactors = FALSE)

my_data2
#converting Map names to the calculated win probability
my_data2[my_data2$Map == "Dust2", "Map"] <- 0.307692
my_data2[my_data2$Map == "Inferno", "Map"] <- 0.47619
my_data2[my_data2$Map == "Mirage", "Map"] <- 0.708333
my_data2[my_data2$Map == "Nuke", "Map"] <- 0.444444
my_data2[my_data2$Map == "Overpass", "Map"] <- 0.333333
my_data2[my_data2$Map == "Train", "Map"] <- 0.692308
my_data2[my_data2$Map == "Vertigo", "Map"] <- 0
my_data2[my_data2$Map == "Cache", "Map"] <- …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 logistic-regression dplyr r-caret

3
推荐指数
1
解决办法
267
查看次数

随机森林的tuneRF与插入符调谐

我尝试使用 randomForest 包中包含的uneRF工具来调整随机森林模型,并且我还使用插入符包来调整我的模型。问题是我正在尝试进行 mtry,并且每种方法都会得到不同的结果。问题是我如何知道哪种方法是最好的方法以及基于什么?我不清楚我是否应该期待类似或不同的结果。

uneRF:通过这种方法,我得到的最佳 mtry 是 3

t <- tuneRF(train[,-12], train[,12],
        stepFactor = 0.5,
        plot = TRUE,
        ntreeTry = 100,
        trace = TRUE,
        improve = 0.05)
Run Code Online (Sandbox Code Playgroud)

插入符号:通过这种方法,我总是得到最好的 mtry 是这种情况下的所有变量 6

control <- trainControl(method="cv", number=5)
tunegrid <- expand.grid(.mtry=c(2:6))
set.seed(2)
custom <- train(CRTOT_03~., data=train, method="rf", metric="rmse", 
                tuneGrid=tunegrid, ntree = 100, trControl=control)
Run Code Online (Sandbox Code Playgroud)

r random-forest hyperparameters r-caret

3
推荐指数
1
解决办法
4480
查看次数

在插入符号中拟合 bartMachine 得到长度为零的参数/不正确的维数

我想一个很好的例子模型bartMachine中使用Caret,我似乎无法建模bartMachineCaret正确的,谁能告诉我,什么是完全错误的主要手段?或者是否有用于 BART 建模的简单可重现代码?

这是我使用 HouseVotes84 和汽车数据集的一些虚拟数据对 bartMachine 进行建模的片段:

library(mlbench)
library(caret)

data("HouseVotes84")
#Using HouseVotes84 as Classification Task Dataset and mtcars as Regression Task Dataset
dummy_data_classif <- HouseVotes84[,2:length(colnames(HouseVotes84))] %>% 
  mutate_if(is.factor, as.numeric)
dummy_data_classif <- data.frame(cbind(Class=HouseVotes84[,1], dummy_data_classif))
dummy_data_classif[is.na(dummy_data_classif)] <- 0

data("cars")
dummy_data_regr <- cars

caret_method_tester <- function(dummy_data, formula, resample_plan=1, 
                                test_method, time_limit=30, 
                                grid_param=c(), parallel_mode=FALSE){
  library(caret)
  library(R.utils)
  formula <- as.formula(formula)
  resampling <- NULL
  if(resample_plan==1){
    resampling <- trainControl(method = "repeatedcv",
                               number = 10,
                               repeats = 5,
                               allowParallel = parallel_mode) …
Run Code Online (Sandbox Code Playgroud)

r machine-learning r-caret bartmachine

3
推荐指数
1
解决办法
272
查看次数

Tidyverse 的 tidy() 函数在 R 中不起作用

我有一个简单的问题,tidy()R 中的函数不起作用。我已经安装了 tidyverse 并加载了library(tidyverse). 但是我收到以下错误消息:

Error in tidy(fit1b) : could not find function "tidy"
Run Code Online (Sandbox Code Playgroud)

加载软件包时(仅“lfe”和“tidyverse”软件包),我还会遇到以下冲突,但我不确定它们是否导致了问题:

x tidyr::expand() masks Matrix::expand()
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
x tidyr::pack()   masks Matrix::pack()
x tidyr::unpack() masks Matrix::unpack()
Run Code Online (Sandbox Code Playgroud)

r broom tidyverse

3
推荐指数
1
解决办法
1万
查看次数

R 引导功能 - 绘图中 t 和 t* 的解释 - 标准图形的修改

我开始使用该包,但bootR理解参数的含义tt*绘图时遇到了一些麻烦。

一个基本的代码如下:

library(boot)
mydata <- c(0.461, 3.243, 8.822, 3.442) 
meanFunc <- function(mydata, i){mean(mydata[i])}
bootMean <- boot(mydata, meanFunc, 250)
plot(bootMean)
Run Code Online (Sandbox Code Playgroud)

使用命令时,plot.boot我获得了这个图形:

在此处输入图片说明

它代表什么t*。为什么标题说 t 的直方图但在 x 轴上我们有t*

作为附加问题:如何修改此图形的属性,例如颜色、平铺或轴?

谢谢

statistics graphics plot r statistics-bootstrap

2
推荐指数
1
解决办法
2808
查看次数

sns.regplot 显示回归的阴影区域,这是没有意义的

鉴于:

f = pd.DataFrame({"a": [1,2,3], "b": [1,2,3]})
ax = sns.regplot(x="a", y="b", data=f)
Run Code Online (Sandbox Code Playgroud)

我得到的这张图表很令人困惑,因为这些点完全排列在一起。为什么会有阴影区域呢?我想我不明白阴影到底意味着什么。

在此输入图像描述

python pandas seaborn

2
推荐指数
1
解决办法
4609
查看次数

Seaborn 中的条形图,高度基于数组

设置y=[0.7,0.2,0.1,0.05]x=[1,2,3,4],如何在 seaborn 中创建条形图/条形图,其中高度由 iey中给出的标签指定x,第一个条形的高度为 0.7,第二个条形的高度为 0.2 等,就像matplotlib

plt.bar(x=[1,2,3,4],height=y)

python bar-chart seaborn

2
推荐指数
1
解决办法
4694
查看次数