标签: predict

glmer logit - 交互效应对概率尺度的影响(用"预测"复制"效果")

我使用lme4包运行glmer logit模型.我对各种两种和三种互动效果及其解释感兴趣.为简化起见,我只关注固定效应系数.

我设法提出了一个代码来计算并在logit量表上绘制这些效果,但我无法将它们转换为预测的概率量表.最后我想复制effects包的输出.

这个例子依赖于加州大学洛杉矶分校关于癌症患者的数据.

library(lme4)
library(ggplot2)
library(plyr)

getmode <- function(v) {
  uniqv <- unique(v)
  uniqv[which.max(tabulate(match(v, uniqv)))]
}

facmin <- function(n) {
  min(as.numeric(levels(n)))
}

facmax <- function(x) {
  max(as.numeric(levels(x)))
}

hdp <- read.csv("http://www.ats.ucla.edu/stat/data/hdp.csv")

head(hdp)
hdp <- hdp[complete.cases(hdp),]

hdp <- within(hdp, {
  Married <- factor(Married, levels = 0:1, labels = c("no", "yes"))
  DID <- factor(DID)
  HID <- factor(HID)
  CancerStage <- revalue(hdp$CancerStage, c("I"="1", "II"="2", "III"="3", "IV"="4"))
})
Run Code Online (Sandbox Code Playgroud)

在此之前,我需要的是所有数据管理,功能和包.

m <- glmer(remission ~ CancerStage*LengthofStay + Experience +
             (1 | DID), …
Run Code Online (Sandbox Code Playgroud)

graphics r predict lme4 marginal-effects

12
推荐指数
1
解决办法
1306
查看次数

使用broom :: augment函数以响应比例获取预测值

我正在拟合glm模型R并且可以使用拟合模型在predict.glm(object=fm1, type="response")哪里获得响应尺度的预测值fm1.我想知道如何使用包中的augment函数以响应比例获得预测值broom.我的最低工作示例如下.

Dilution <- c(1/128, 1/64, 1/32, 1/16, 1/8, 1/4, 1/2, 1, 2, 4)
NoofPlates <- rep(x=5, times=10)
NoPositive <- c(0, 0, 2, 2, 3, 4, 5, 5, 5, 5)
Data <- data.frame(Dilution,  NoofPlates, NoPositive)


fm1 <- glm(formula=NoPositive/NoofPlates~log(Dilution),
           family=binomial("logit"), data=Data, weights=NoofPlates)
predict.glm(object=fm1, type="response")
# 1          2          3          4          5          6          7          8          9         10 
# 0.02415120 0.07081045 0.19005716 0.41946465 0.68990944 0.87262421 0.95474066 0.98483820 0.99502511 0.99837891 

library(broom)
broom::augment(x=fm1)

# …
Run Code Online (Sandbox Code Playgroud)

statistics r predict glm broom

11
推荐指数
1
解决办法
4543
查看次数

XGBoost 模型:在 GPU 上训练,在 CPU 上运行,无需分配 GPU RAM

如何在 GPU 上训练 XGBoost 模型但在 CPU 上运行预测而不分配任何GPU RAM

我的情况:我tree_method='gpu_hist'用 Python 创建了一个 XGBoot 模型 ( ) predictor='cpu_predictor',然后在 GPU 上训练它,然后将其保存(pickle)到磁盘,然后从磁盘读取模型,然后用它进行预测。

我的问题:一旦模型开始进行预测,即使我在 CPU 上运行它,它仍然会分配一些少量的 GPU RAM(大约 289MB)。这是一个问题,原因如下:

  • 我运行模型的多个副本来并行化预测,如果运行太多,预测过程就会崩溃。
  • 如果我同时在同一台机器上运行预测,我无法使用 GPU 来训练其他模型。

那么,如何告诉 XGBoost 不分配任何GPU RAM 并仅使用 CPU 和常规 RAM 进行预测呢?

非常感谢您的帮助!

python cpu gpu predict xgboost

11
推荐指数
0
解决办法
1595
查看次数

如何从线性模型(lm)预测x值

我有这个数据集:

x <- c(0, 40, 80, 120, 160, 200)
y <- c(6.52, 5.10, 4.43, 3.99, 3.75, 3.60)
Run Code Online (Sandbox Code Playgroud)

我使用lm()以下方法计算了线性模型

model <- lm(y ~ x)
Run Code Online (Sandbox Code Playgroud)

我想知道x如果我有新y值的预测值,例如ynew <- c(5.5, 4.5, 3.5),但如果我使用该predict()函数,它只计算新y值.

x如果我有新y值,如何预测新值?

r predict lm

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

在使用公式使用插入符号train()训练的randomForest对象上使用predict()时出错

在64位Linux机器上使用R 3.2.0 with caret 6.0-41和randomForest 4.6-10.

当尝试使用公式对使用包中的函数训练predict()randomForest对象使用该方法时,该函数返回错误.当通过训练和/或使用和而不是公式,这一切都顺利进行.train()caretrandomForest()x=y=

这是一个工作示例:

library(randomForest)
library(caret)

data(imports85)
imp85     <- imports85[, c("stroke", "price", "fuelType", "numOfDoors")]
imp85     <- imp85[complete.cases(imp85), ]
imp85[]   <- lapply(imp85, function(x) if (is.factor(x)) x[,drop=TRUE] else x) ## Drop empty levels for factors.

modRf1  <- randomForest(numOfDoors~., data=imp85)
caretRf <- train( numOfDoors~., data=imp85, method = "rf" )
modRf2  <- caretRf$finalModel
modRf3  <- randomForest(x=imp85[,c("stroke", "price", "fuelType")], y=imp85[, "numOfDoors"])
caretRf <- train(x=imp85[,c("stroke", "price", "fuelType")], y=imp85[, "numOfDoors"], method = "rf")
modRf4 …
Run Code Online (Sandbox Code Playgroud)

r formula predict random-forest r-caret

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

Python ARIMA外生变量样本外

我试图预测python statsmodels ARIMA包中的时间序列,包含一个外生变量,但无法弄清楚在预测步骤中插入外生变量的正确方法.请参阅此处了解文档.

import numpy as np
from scipy import stats
import pandas as pd

import statsmodels.api as sm

vals = np.random.rand(13)
ts = pd.TimeSeries(vals)
df = pd.DataFrame(ts, columns=["test"])
df.index = pd.Index(pd.date_range("2011/01/01", periods = len(vals), freq = 'Q'))

fit1 = sm.tsa.ARIMA(df, (1,0,0)).fit()
#this works fine:
pred1 = fit1.predict(start=12, end = 16)
print(pred1)

Out[32]: 
2014-03-31    0.589121
2014-06-30    0.747575
2014-09-30    0.631322
2014-12-31    0.654858
2015-03-31    0.650093
Freq: Q-DEC, dtype: float64
Run Code Online (Sandbox Code Playgroud)

现在添加一个趋势外生变量

exogx = np.array(range(1,14))
#to make this easy, let's look at …
Run Code Online (Sandbox Code Playgroud)

python numpy predict statsmodels

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

来自predict.gbm()的不一致预测

更新:

我试过在https://rdrr.io/snippets/上运行代码,它运行正常.因此,我怀疑我的R安装有问题,但是非常担心这种情况可能会发生而不会出现错误或警告.调查此问题的最佳步骤是什么?我在Ubuntu 18.04和gbm 2.1.4上运行R 3.4.4


我正在将增强模型拟合到数据集中,并注意到一些奇怪的预测.这是一个最小的工作示例.请注意,这只是我正在使用的数据集的一小部分示例

mydata <- structure(list(Count = c(1L, 3L, 1L, 4L, 1L, 0L, 1L, 2L, 0L, 0L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 0L, 2L, 3L, 1L, 4L, 3L, 0L, 4L, 1L, 2L, 1L, 1L, 0L, 2L, 1L, 4L, 1L, 5L, 3L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 2L, 0L, 0L, 1L, 1L, 1L, 0L, 3L, 1L, 1L, 0L, 3L, 1L, 1L, 1L, 1L, 2L, 3L, 2L, 2L, 0L, 0L, 3L, …
Run Code Online (Sandbox Code Playgroud)

r machine-learning predict gbm

9
推荐指数
1
解决办法
215
查看次数

如何预测merMod对象的术语(lme4)?

对于简单glm对象,我可以使用predict(fit, type = "terms")检索每个术语具有拟合值的矩阵.

什么是lmerresp 的等价物.glmer合身模特?据我所见,该predict.merMod功能不支持type = terms.

r predict lme4

8
推荐指数
1
解决办法
354
查看次数

R中的回归(logistic):查找特定y值(结果)的x值(预测值)

我装逻辑回归模型预测的二元结果vsmpg(mtcars数据集).情节如下所示.如何确定mpg任何特定vs值的值?例如,我有兴趣在mpg概率vs为0.50 时找出值是什么.感谢任何人都能提供的帮助!

model <- glm(vs ~ mpg, data = mtcars, family = binomial)

ggplot(mtcars, aes(mpg, vs)) + 
    geom_point() + 
    stat_smooth(method = "glm", method.args = list(family = "binomial"), se = FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

regression r linear-regression predict logistic-regression

8
推荐指数
2
解决办法
4156
查看次数

fastai学习者要求和批量预测

我之前使用fastai库训练了一个resnet34模型,并保存了weights.h5文件.使用最新版本的fastai,我是否还需要非空列车和有效文件夹才能导入我的学习者并在测试集上进行预测?

此外,我正在循环遍历每个测试图像并使用learn.predict_array,但是有没有办法在测试文件夹中批量预测?

我目前正在加载/预测的示例:

PATH = '/path/to/model/'
sz = 224
arch=resnet34
tfms = tfms_from_model(resnet34, sz, aug_tfms=transforms_side_on, max_zoom=1.1)
data = ImageClassifierData.from_paths(PATH, tfms=tfms, bs=64)
learn = ConvLearner.pretrained(arch, data, precompute=False)
learn.unfreeze()
learn.load('224_all')

imgs = sorted(glob(os.path.join(test_path, '*.jpg')))
preds = []
_,val_tfms = tfms_from_model(resnet34, 224)
for n, i in enumerate(imgs):
        im = val_tfms(open_image(i))[None]
        preds.append(1-np.argmax(learn.predict_array(im)[0]))
Run Code Online (Sandbox Code Playgroud)

现在必须有更清洁的方法来做到这一点,不是吗?

machine-learning predict batch-processing python-3.x fast-ai

8
推荐指数
1
解决办法
2719
查看次数