R десятичные дроби не суммируют до 1 (вычисление веса ансамбля)

Я пытаюсь создать экспоненциально взвешенные ансамбли, используя оценки AUC. Цель состоит в том, чтобы получить всю сумму экспоненциального веса до 1. Список сгенерированных мной результатов AUC:

auc <- c(0.7624542, 0.7622197, 0.7607315, 0.7603859, 0.7603311, 0.7572016, 0.7372729, 
 0.5134265, 0.5023572, 0.5020811)

Создание скаляра:

scalar <- 1/(exp(1*auc[1]) + exp(0.9*auc[2]) +exp(0.8*auc[3]) + exp(0.7*auc[4]) 
+ exp(0.6*auc[5]) + exp(0.5*auc[6]) + exp(0.4*auc[7]) + exp(0.3*auc[8]) + exp(0.2*auc[9]) 
+ exp(0.1*auc[10]))  

Создание весов по баллам AUC

weight<- c(scalar*exp(1*auc[1]) ,scalar*exp(0.9*auc[2]) 
,scalar*exp(0.8*auc[3]),scalar*exp(0.7*auc[4]) 
,scalar*exp(0.6*auc[5]) ,scalar*exp(0.5*auc[6]),scalar*exp(0.4*auc[7]) , 
scalar*exp(0.3*auc[8]) ,scalar*exp(0.2*auc[9]) 
,scalar*exp(0.1*auc[10] ))
sum(weight)

В конце концов sum(weight) должен быть равен 1, но я продолжаю получать 0,9348756.

Любая помощь будет оценена!


0 ответов

Другие вопросы по тегам