1

バイナリ データで次のエラスティック ネット モデルを実行しています (1 = 悪い、0 = 良い)。デフォルトでglmnetが適合するモデルのタイプを知っている人はいますか:P(y = 1)またはP(y = 0)。モデルに合わせて前者を選択する方法はありますか。

cv.glmnet(x, y, family="binomial", type.measure="deviance", standardize=FALSE, nfolds=5, alpha=par)
4

1 に答える 1

1

glmnet のドキュメントに埋もれているのは、あなたの答えです ( ?predict.glmnetR 内で入力してください):

「二項」モデルの場合、因子応答の第 2 レベルに対応するクラスの結果のみが返されることに注意してください。

説明したバイナリ データが単純な数値ベクトルとして割り当てられたy場合、モデルは P(y=1) フィットを生成します。

> x <- matrix(rnorm(100*20),100,20)  # create some sample input
> y <- as.factor(sample(0:1, 100, replace=TRUE))
> levels(y)
[1] "0" "1"
> py1_fit <- glmnet(x, y, family="binomial")

代わりに P(y=0) に対して反転して適合させるには、レベルを並べ替えるだけです。

> y0 <- factor(y, levels=rev(levels(y)))
> levels(y0)
[1] "1" "0"
> py0_fit <- glmnet(x, y0, family="binomial")
于 2012-12-12T21:53:39.023 に答える