>source

LOOCV와 함께 glmnet 로지스틱 회귀 모델을 사용할 때 모든 샘플 예측에서 혼동 행렬을 얻고 싶습니다. 아래의 간단한 예는 10개의 관측치가 있는 데이터 프레임을 사용합니다. 샘플 예측 중 개별 10개에 대한 결과를 볼 수 있는 방법이 있습니까?

glmnet 매뉴얼의 빨간색 항목을 기반으로 cv.glmnet 호출에서 'keep= TRUE' 옵션을 사용해야 한다고 생각합니다. 하지만 그 이후에는 어떻게 해야 할지 잘 모르겠습니다. 예를 들어, code의 마지막 4줄이 너무 많은 혼동 행렬을 인쇄하기 때문에 내가 원하는 것을 제공하는지 확실하지 않습니다.

library(glmnet)
library(dplyr)
set.seed(123)
x1 <-c(1, 2, 3, 4, 4, 5, 5, 6, 7, 8)
x2 <-rnorm(10)
y <-c(0, 0, 0, 0, 1, 0, 1, 1, 1, 1)
df <-data.frame(x1, x2, y)
plot(df)
# Find the best lambda for RIDGE with LOOCV
cv.ridge <-cv.glmnet(x=as.matrix(df[,-3]), y=y, alpha=0, family="binomial",
                      nfolds=NROW(df), standardize= FALSE, keep= TRUE)
plot(cv.ridge)
cv.ridge<span class="math-container">$lambda.min
coef(cv.ridge, cv.ridge$</span>lambda.min)
# Fit model with lambda.min
fit.ridge <-glmnet(x=as.matrix(df[,-3]), y=y, alpha=0,
                    family="binomial", lambda= cv.ridge$lambda.min, standardize= FALSE)
print(fit.ridge)
# Make prediction on the training dataset
probabilities <-fit.ridge %>% predict(newx= as.matrix(df[,-3]), standardize= FALSE)
predicted.classes <-ifelse(probabilities > 0.5, 1, 0)
# Model classification accuracy on the training dataset
observed.classes <-y
CA_min <<-mean(predicted.classes== observed.classes)
# Confusion matrix on the training dataset
table(y, predicted.classes)
# Not sure what are the confusion martixes printed by the last two lines ???
cnf <-confusion.glmnet(cv.ridge<span class="math-container">$fit.preval, newy= y, family= "binomial")
best <-cv.ridge$</span>index["min",]
print(cnf[[best]])
print(cnf)

  • 이전 c# : try/catch 블록 내에 채워진 ViewBag 문자열을 인쇄하는 방법
  • 다음 c# : JsonObject 내부의 JsonArray를 ListView에 표시