• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

작업형 제2유형 관련 질문

21.11.29 03:22 작성 조회수 129

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요 알려주신 코드를 손에 익히려 노력하고 있습니다 :)
다름이 아니라, 해당 코드를 다른 데이터에도 적용해보다 궁금한 점이 있어서 질문 드립니다 !
 
1. 제가 실행한 과정 중에 잘못된 부분이 있을까요?
 
2. train과 test를 나누고 평가지표로 f1 score도 구하려 했는데 error가 뜹니다, 이유를 알 수 있을까요 ?
 
p4 <- as.factor(ifelse(p3[,2]>0.5, 1, 0)) tmp <- caret::confusionMatrix(p4,t_test$Response)
 
3. 강의 중에 작업형 제2유형에서 df <- df%>%select(-c(1,5,6))를 하셨는데, 첫 번째 칼럼인 cust_id를 제거한 이유가 의미있는 정보가 아닌 단순 정보라서 제거하신게 맞나요?
 
 
감사합니다 :)
 
 
 
 
 
(아래는 제가 실행한 R-code 입니다 !)
 
train <- read.csv("https://raw.githubusercontent.com/Datamanim/datarepo/main/insurance/train.csv", stringsAsFactors=T) test <- read.csv("https://raw.githubusercontent.com/Datamanim/datarepo/main/insurance/test.csv", stringsAsFactors=T) str(train) summary(train) unique(train$Region_Code) train$Driving_License <- as.factor(train$Driving_License) train$Previously_Insured <- as.factor(train$Previously_Insured) train$Response <- as.factor(train$Response) train <- train %>% select(-c(1,5)) inx <- createDataPartition(train$Response,p=0.7,list=F) t_train <- train[inx,] t_test <- train[-inx,] model1 <- train(Response~., data=t_train, method="glm") model2 <- train(Response~., data=t_train, method="rpart") p1 <- predict(model1,t_test,type="prob") p2 <- predict(model2,t_test,type="prob") p3 <- (p1+p2)/2 auc(t_test$Response,p3[,2]) str(test) summary(test) test$Driving_License <- as.factor(test$Driving_License) test$Previously_Insured <- as.factor(test$Previously_Insured) test <- test %>% select(-c(1,5)) model1 <- train(Response~., data=train, method="glm") model2 <- train(Response~., data=train, method="rpart") p1 <- predict(model1,test,type="prob") p2 <- predict(model2,test,type="prob") p3 <- (p1+p2)/2 resut <- data.frame(result=p3[,2]) print(result)

 

답변 1

답변을 작성해보세요.

0

 

안녕하세요.

먼저 3번내용을 설명드리면 첫번째 칼럼인 cust_id는 단순히 시퀀셜한 숫자일 뿐 아무의미가 없습니다.

말씀하신 내용이 맞구요. 그 이유로 y_train과 join에만 사용하고 제외했습니다.

아마 시험에서도 마찬가지로 하셔야할 겁니다. 고객ID정도로 생각하시면 될 것 같습니다.

 

위의 코드를 돌려봤는데 

test 데이터는 정답지인(Response) 변수가 없기 때문에 Error가 발생하는 것 같습니다.

모델을 평가하려면 정답지와 에측값을 비교해야되는데 예측값만 존재하고 정답지가 없기 때문입니다.

모델평가를 최종모델전에 t_train, t_test인 단계에서 진행하시면 Error없이 동작하는 것을

확인했습니다. (물론 0.5기준으로 나누면 예측값이 동일해서 Warning이 나오긴하네요.)

 

> names(train)

 [1] "Gender"               "Age"                 

 [3] "Driving_License"      "Previously_Insured"  

 [5] "Vehicle_Age"          "Vehicle_Damage"      

 [7] "Annual_Premium"       "Policy_Sales_Channel"

 [9] "Vintage"              "Response"            

> names(test)

[1] "Gender"               "Age"                 

[3] "Driving_License"      "Previously_Insured"  

[5] "Vehicle_Age"          "Vehicle_Damage"      

[7] "Annual_Premium"       "Policy_Sales_Channel"

[9] "Vintage"  

포로로님의 프로필

포로로

질문자

2021.11.29

헉 코드가 저렇게 올라가있는지 몰랐네요 ㅜㅜ 읽기 힘드셨을텐데 죄송합니다

답변 감사해요 많은 도움이 되었습니다 :)

ㅎㅎ 저도 코드보고 흠칫했습니다.

평안한밤되세요.