2015-03-11 4 views
0

Я использую метод multinom в пакете nnet Мне нужно взвешивать классы по-разному в соответствии с их пропорциями. У меня даже есть пропорции со мной.Как указать параметр весов в пакете nnet для метода multinom

Вопрос в том, как указать параметр весов для метода многоканальной обработки? Если я просто укажу список, как он сопоставляет фактический класс с весами?

+0

Я думаю, что nnet не имеет возможности указывать весовые коэффициенты. – MTT

ответ

0

Вы не должны весить свои классы в соответствии с их пропорциями; размеры выборки являются частью модели и не должны регулироваться с помощью весов.

По вопросу определения весов вы просто предоставляете список для аргумента multinomweights, который затем сопоставляет каждое значение с указанным весом. Он делает это, если я не ошибаюсь (в этом случае я бы с радостью исправил), умножив логарифмическую вероятность каждого случая с указанным весом.

Вот пример.

library(nnet) 

set.seed(1) 

x <- rnor_lenm(100) 
y <- rep_len(c("A", "B", "C"), 100) 
wts <- runif(100) 

multinom(y ~ x, weights = wts) 

Выход:

# weights: 9 (4 variable) 
initial value 56.891315 
final value 56.637716 
converged 
Call: 
multinom(formula = y ~ x, weights = wts) 

Coefficients: 
    (Intercept)   x 
B -0.09823625 -0.1779220 
C -0.06923607 -0.1951617 

Residual Deviance: 113.2754 
AIC: 121.2754  

Это то, что вы искали?