2013-09-08 2 views
1

Я хочу использовать glmnet в R для решения задач классификации.Как использовать glmnet в R для задач классификации

Данные выборки выглядит следующим образом:

y,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11 
1,0.766126609,45,2,0.802982129,9120,13,0,6,0,2 
0,0.957151019,40,0,0.121876201,2600,4,0,0,0,1 
0,0.65818014,38,1,0.085113375,3042,2,1,0,0,0 

у представляет собой бинарный ответ (0 или 1).

Я использовал следующий код: R

prr=cv.glmnet(x,y,family="binomial",type.measure="auc") 
yy=predict(prr,newx, s="lambda.min") 

Однако, предсказанное уу по glmnet рассеивается между [-24,5].

Как я могу ограничить выходное значение значением [0,1], поэтому я использую его для выполнения задач классификации?

ответ

3

Я снова прочитал инструкцию и обнаружил, что тип = «ответ» в предсказать метод будет производить то, что я хочу: выходные значения

lassopre2=predict(prr,newx, type="response") 

воли между [0,1]

0

Сводка путь glmnet на каждом шаге отображается, если мы просто ввести имя объекта или использовать функцию печати:

print(fit) 

    ## 
    ## Call: glmnet(x = x, y = y) 
    ## 
    ##  Df %Dev Lambda 
    ## [1,] 0 0.0000 1.63000 
    ## [2,] 2 0.0553 1.49000 
    ## [3,] 2 0.1460 1.35000 
    ## [4,] 2 0.2210 1.23000 

Он показывает слева направо число ненулевых коэффициентов (Df), процент (нулевого) отклонения (% dev) и значение λ

(Лямбда). Хотя по умолчанию glmnet вызывает 100 значений лямбда, программа останавливается раньше, если `% dev% не изменяется достаточно от одной лямбда к следующей (обычно ближе к концу пути).

Мы можем получить фактические коэффициенты при один или более Л

«ы в пределах диапазона последовательности:

coef(fit,s=0.1) 

    ## 21 x 1 sparse Matrix of class "dgCMatrix" 
    ##      1 
    ## (Intercept) 0.150928 
    ## V1   1.320597 
    ## V2   .  
    ## V3   0.675110 
    ## V4   .  
    ## V5   -0.817412 

Here is the original explanation for more information by Hastie

Смежные вопросы