gpt4 book ai didi

R函数,nnet : what exactly "weights" input does?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:06:05 25 4
gpt4 key购买 nike

为了使用 R 函数 nnet 将神经网络拟合到数据集,我了解到当案例在各个类别中分布不均时,我应该适本地对每个案例进行加权(http://cowlet.org/2014/01/12/understanding-data-science-classification-with-neural-networks-in-r.html)。

R 函数 nnet 有一个“权重”输入,我想知道它到底是怎么做的。帮助文件只说“每个示例的(案例)权重——如果缺少默认为 1”,这对我来说不是很清楚。我最初认为权重影响阈值的确定而不是反向传播算法。然而,我天真的猜测似乎并不正确。为了看到这一点,我生成了非常简单的不均匀分布的两个类:

 library(nnet)

p1 <- 0.05
p2 <- 1 - p1
Ntot <- 2000
class <- sample(1:2,Ntot,prob=c(p1,p2),replace=TRUE)
dat <- scale(cbind(f1=rnorm(Ntot,mean=class), f2=rnorm(Ntot,mean=class,sd=0.01)))

然后用两个 nnet 拟合模型:一个具有与其类别成比例的案例权重,另一个具有所有权重 1。

 myWeight <- rep(NA,length(class))
myWeight[class==1] <- p1
myWeight[class==2] <- p2
set.seed(1)
fitw <- nnet(class~.,data=dat,weights=myWeight,size=3,decay=0.1)
set.seed(1)
fit0 <- nnet(class~.,data=dat,size=3,decay=0.1)

现在我估计响应值(范围在 0 到 1 之间)。

 pred.raw.w <- predict(fitw,type="raw")
pred.raw0 <- predict(fit0,type="raw")

head(pred.raw.w)
head(pred.raw0)

如果我天真的猜测是真的,我会看到相同的原始响应估计。我看到两个响应值不同!这意味着权重必须对反向传播方程(而不仅仅是阈值)的计算有所影响。谁能告诉我权重到底在做什么或指导我引用?

最佳答案

“案例权重”是指每个观察的重要性权重。权重可用于定制 ML 算法以专注于数据的某些方面。

例如,预测一家商店的销售额的问题。预测周末和节假日前后的销售额可能更为重要,因为商店的大部分销量都是在这些时间段内购买的。然后,您可以分配一列权重,其中工作日为“1”,周末/假期为“2”。

关于R函数,nnet : what exactly "weights" input does?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com