Written on
·
159
0
train <- read.csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/MedicalCost/train.csv')
test <- read.csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/MedicalCost/test.csv')
str(train)
summary(train)
train$sex <- as.factor(train$sex)
train$children <- as.factor(train$children)
train$smoker <- as.factor(train$smoker)
train$region <- as.factor(train$region)
inx <- createDataPartition(train$charges, p=0.7, list=F)
t_train <- train[inx,]
t_test <- train[-inx,]
model1 <- train(charges~., data=t_train, method="glm")
model2 <- train(charges~., data=t_train, method="rpart")
p1 <- predict(model1,t_test,type="prob")
p2 <- predict(model2,t_test,type="prob")
p3 <- (p1+p2)/2
# p4 <- as.factor(ifelse(p3[,2]>0.5, 1, 0))
# tmp <- caret::R2(p4,t_test$charges)
str(test)
summary(test)
test$sex <- as.factor(test$sex)
test$children <- as.factor(test$children)
test$smoker <- as.factor(test$smoker)
test$region <- as.factor(test$region)
model1 <- train(charges~., data=train, method="glm")
model2 <- train(charges~., data=train, method="rpart")
p1 <- predict(model1,test,type="prob")
p2 <- predict(model2,test,type="prob")
p3 <- (p1+p2)/2
Answer 1
0
안녕하세요.
일단 p3의 최대값이 0.36이면 p4를 생성할 때 기준값을 정하는 것은
전적으로 분석가와 현업담당자의 직관입니다. 주로 사전확률등을 활용해서 잡긴하는데
정답은 없습니다. 그렇기 때문에 시험에는 그냥 확률값 자체를 제출받아서 AUROC로 채점을 하게 됩니다.
R2 Score는 아마 파이썬에서 보신 것 같은데 R2 Score는 선형회귀(lm함수)를 사용하는 경우에서만
R-Square 값을 뽑을 수 있습니다. 따라서 시험에는 나오지 않을 것으로 보입니다.
꼭 뽑아야 하는 경우에는 lm함수로 모델을 만드시고 summary(모델명)$r.squared로 실행하시면 되겠습니다.
작성해주신 것은 코드상으로 문제가 없으며 잘 돌아갈 것 같습니다.