ACAIT

[BDA 데분기] 5주차 필수 과제 - 이상치 관련 분석 본문

학회 활동/BDA 7기(데이터 분석 기초반)

[BDA 데분기] 5주차 필수 과제 - 이상치 관련 분석

831x99 2024. 1. 31. 16:45

0. 예시 데이터로 이상치 확인





1. 이상치 관련 작업

1-1. 베이스라인 모델 회귀분석

 

# train_test_split(arrays, test_size, train_size, random_state, shuffle, stratify)

  • arrays: 분할시킬 데이터 입력
  • test_size: 테스트 데이터셋의 비율, 갯수(default = 0.25)
  • train_size: 학습 데이터셋의 비율, 갯수(default = test_size의 나머지)
  • random_state: 데이터 분할 시 셔플을 위한 시드값(int나 RandomState로 입력)
  • shuffle: 셔플 여부(default = True)
  • stratify: 지정한 Data 비율 유지.
    • ex) Label Set인 Y가 25%의 0과 75%의 1인 Binary Set일 때,
      stratify = Y > 나누어진 데이터셋들도 0, 1을 25%, 75%로 유지하면서 분할.
  • X_train, X_test, Y_train, Y_test : arrays에 데이터와 레이블을 둘 다 넣었을 경우의 반환이며,
    데이터와 레이블의 순서쌍은 유지된다.
  • X_train, X_test : arrays에 레이블 없이 데이터만 넣었을 경우의 반환

  • 베이스라인 모델로 회귀분석 진행 시 mse = 0.637

1-2. 이상치 제거 - 열 AveBedrms 기준

  • IQR 제거 진행.
  • IQR이란, Interquartile range의 약자로써 Q3 - Q1를 의미.
  • "어디까지가 이상치 데이터다" 라고 판단하는 기준 중 하나.
  • Q3 - Q1: 사분위수의 상위 75% 지점의 값과 하위 25% 지점의 값 차이.

  • 이상치 제거 시 mse = 0.601

1-3. 이상치 살리는 분석 방법

  • 이상치의 가중치를 둔다고 하면 1, 아니면 0.
  • 혹은 반대로 가중치 둘 수도 있다.
  • 지금은 이상치에 가중치를 둬서 어떻게 진행되는지 확인. (IQR 범위 벗어나면 1)

  • 이상치에 가중치 부여 시 mse = 0.64

2. 결론

  • 제거하지 않고 가중치를 해도 rmse가 떨어질 수 있다.
  • 현재 작성된 코드로는 가중치 부여 시 mse가 가장 크게 나왔다.
  • 베이스 라인과 이상치 제거보다 눈에 띄게 높은 값이 나온 것이 아니라 유사한 수치가 나온 것으로 보아,
    이상치를 보존하고 회귀분석을 하는 방법도 분석에 도움이 될 것이라고 추측한다.

  1. 기존 base:                   0.6377518466952142
  2. outlier replace(제거):   0.601210788228135
  3. outlier saving(가중치): 0.640519486034635