我有一个包含 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 中的分布。
我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) 我试图弄清楚如何从插入符::训练线性模型中获取置信区间。
我的第一次尝试只是使用通常的 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 上创建了一个逻辑模型,问题是我的最大 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) 我尝试使用 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) 我想一个很好的例子模型bartMachine中使用Caret,我似乎无法建模bartMachine与Caret正确的,谁能告诉我,什么是完全错误的主要手段?或者是否有用于 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) 我有一个简单的问题,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) 我开始使用该包,但boot在R理解参数的含义t和t*绘图时遇到了一些麻烦。
一个基本的代码如下:
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*?
作为附加问题:如何修改此图形的属性,例如颜色、平铺或轴?
谢谢
鉴于:
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)
我得到的这张图表很令人困惑,因为这些点完全排列在一起。为什么会有阴影区域呢?我想我不明白阴影到底意味着什么。
设置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)