라벨 인코딩 먼저 해보고 있을 것. 분석 시간은 오래 걸릴 듯함
1. 전처리
1) 변수 변환(라벨인코딩, 스케일링)
2) 결측치 처리
3) 파생변수
4) 변수 선택
4-1) 상관계수(수치 - 수치)
4-2) T통계량(범주 - 수치)
1), 2) 만 잘 해도 될 것 같음. 초기 MSE보다 올라가는 변환 기법을 알아가는 것이 좋겠음.
MSE를 막대그래프화하여 비교하는 방법으로 나타내는 것이 좋겠음.
train/test가 나뉜 경우 라벨 인코딩 결과는 같아야 함.
이에 대한 설명은 전 시간 자료에 설명되어 있음.
https://metime.tistory.com/217
또한 train/test 분리된 경우 스케일링 시 주의 할 점이 있다.
같은 기준으로 스케일링을 진행하여야 한다(스케일링을 진행하는 공식이 서로 같아야 한다).
아래는 잘못된 스케일링
scale(mart_train$Item_weight) # train의 Item_Weight의 평균, 표준편차를 사용하여 표준화
scale(mart_test$Item_weight) # test의 Item_Weight의 평균, 표준편차를 사용하여 표준화
스케일링 기준도 train과 test가 동일하여야 한다(평균, 표준편차 등이 같아야 함)
따라서 올바른 스케일링이란 서로 같은 기준으로 진행한 스케일링이다.
f_sc <- function(fit, trans) {
vmean <- mean(fit, na.rm = T)
vstd <- sd(fit, na.rm = T)
z <- (trans - vmean)/vstd
return(z)
}
v1 <- f_sc(mart_train$Item_weight, mart_train$Item_weight)
v2 <- f_sc(mart_train$Item_weight, mart_test$Item_weight)
round(mean(v1, na.rm=T), 4) # 0
round(sd(v1, na.rm=T), 4) # 1
round(mean(v2, na.rm=T), 4) # 0이 아님
round(sd(v2, na.rm=T), 4) # 1이 아님
그렇게 되면 train의 평균과 표준편차가 0과 1이 되겠으나 test의 평균과 표준편차가 0과 1이 되지 않을 수 있다. min/max 스케일링도 마찬가지로 train data는 0~1 사이의 범위를 가지나 test data는 그렇게 되지 않을 수 있다.
따라서 올바른 스케일링을 하였다 하더라도 데이터가 항상 평균과 표준편차가 0, 1, min/max 스케일링 시에는 0~1사이 값을 가지지 않을 수 있다.
과제할 때에는 test data는 신경쓰지 않을 것이다. train data set만 raw data set이라고 생각하고 분석하여라(MSE 구하기)
이 문제는 결측치 처리가 어렵다.
라벨 인코딩 할 때 NA가 있는 채로 라벨인코딩 하게되면 R은 모르겠으나 파이썬의 경우 NA도 하나의 라벨로 취급하게 되므로 무조건 NA를 처리 하고 라벨 인코딩을 진행할 것.
'프로젝트 & 챌린지 > 프로젝트 연습' 카테고리의 다른 글
회귀 과제) 변수 분석(2) - Outlet 변수들 분석 (0) | 2024.01.08 |
---|---|
회귀 과제) 변수 분석 (1) | 2024.01.07 |
회귀 과제) big mart 자료를 이용하여 분석하기(설명1) (0) | 2024.01.04 |