인프런 커뮤니티 질문&답변
모형 구축 전 정규화/표준화 문의
작성
·
205
0
안녕하세요, 강의 잘 들었습니다.
궁금한 점이 생겨서 질문하나 드립니다.
모형을 구축하기 전에 결측값, 이상치에 대해서 삭제 및 대체를 진행하고
추가적으로 정규화(range) / 표준화(center, scale)을 작업을 해야 한다고 들었습니다.
질문1) 강의대로 정규화나 표준화 작업을 하는 것과 하지 않고 그냥 진행했을때랑 성능이 많이 차이가 나는지?
질문2) 만약에 모델 구축 전에 정규화 작업을 한다고 하면
a=preProcess(train_data, method=c('range'))
b=predict(a, train_data)
이렇게 진행하면 되는지?
질문3) 질문2가 맞다면 결과변수가 연속형 데이터일때는 정규화 할때 결과변수는 제외하고 해야하는지?
질문4) model1=train(종속변수~., df, method=c('glm'), preProc=c('range'))
이렇게 코드를 짜도 질문2 와 똑같은 뜻인지 궁금합니다.
감사합니다.
답변 1
1
안녕하세요.
제가 제시해드린 rpart와 glm을 이용하는 것은 정규화, 표준화작업을 하지않아도 무방합니다.
정규화, 표준화가 반드시 필요한 알고리즘들이 있는데 제가 제시해드린 알고리즘은
그럴 필요가 없습니다. 그래서 그 모델들을 선택한 이유도 있습니다.
다만, 이상치 등을 전처리하기는 했습니다. 그러나 그건 정규화, 표준화와 아예 다른 관점입니다.
모델 구축전에 정규화 작업을하면 제시해주신 코드가 맞습니다.
강의자료와 동일하게 하시면 될것 같습니다.
결과변수가 y변수를 의미하시는 것이죠? 결과변수는 일반적으로 정규화하지 않습니다.
일반적인 얘기긴 하지만 통상 X변수들만 그런 전처리를 합니다.
질문4로 주신 코드를 돌리면 질문2와 유사한 결과가 나올 것으로 보입니다.
다만, 이상치처리는 할지라도 표준화, 정규화가 필요하지 않은 알고리즘이라는 것을
다시한번 말씀드립니다.






답변 감사드립니다 ^^
혹시, 제시해주신 train(종속변수~., df, method=c('glm')) 처럼
train 함수를 써서 만드는 것과 glm(종속변수~., family='binomial, df) 처럼
glm 함수를 쓰는 것과 차이점이 있을까요?
(glm 함수를 쓰면 정규화는 해야하는 걸까요? 아니면 glm 자체가 정규화가 필요없는..?ㅎ)