ACAIT

[BDA 데분기] 4주차 필수 과제 2 - 시계열 데이터 결측치 대체, 시각화 본문

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

[BDA 데분기] 4주차 필수 과제 2 - 시계열 데이터 결측치 대체, 시각화

831x99 2024. 1. 31. 16:01

시계열 데이터로 결측치 생성 및 대체, 시각화를 진행해 보도록 하겠습니다.

 

  • seattle-weather.csv (출처: kaggle)
  • date, precipitaion, temp_max, temp_min, wind, weather 여섯 개의 컬럼으로 이루어짐.
  • y값을 precipitation으로 설정.
  • 이외 사용할 컬럼은 temp_max, temp_min, wind.

  • 시계열 데이터이므로 train_test_split 사용하면 안 됨.
  • 따라서 인덱스 기준으로 데이터 분리해서 진행. (전체 데이터 중 7:3 비중)
  • 결측값은 모든 컬럼에 최소 50개 이상 생성.


1. IterativeImputer(회귀대치)의 주요 파라미터

  1. estimator(추정량): estimator object, default = BayesianRidge()
  2. missing_values(결측치) = int or np.nan, defaut = np.nan
  3. sample_posterior = bool, default = False
  4. max_iter(최대 반복 횟수) = int, default = 10
  5. tol(tolerance, 허용 오차) = float, default = 1e-3
  6. n_nearest_features = int, default = None
    • 결측값 추정 시 사용할 다른 속성 수.
    • 절대상관계수 사용하여 측정.
    • 기능 수 많을 때 상당한 속도 향상.
    • None인 경우 모든 기능 사용.
  7. initial_strategy = {'mean', 'median', 'most_frequent', 'constant'}, default = 'mean'
  8. imputation_order = {'ascending', 'descending', 'roman', 'arabic', 'random'}, default = 'ascending'
    • 기능 전가 되는 순서.
    • 오름차순, 내림차순, 좌에서 우로, 우에서 좌로, 무작위 순서.
  9. skip_complete = bool, default = False
    • fit(학습) 때 값이 있었고 transform(테스트) 때 값이 없을 때
    • Ture = fit값 그대로. False = 계산값.
  10. min_value = {float, array-like of shape (n_features, )}, default = -np.inf
  11. min_value = {float, array-like of shape (n_features, )}, default = np.inf
    • 둘의 default = (-∞, ∞)
  12. verbose(상세한 로깅 출력) = int, default = 0
  13. random_state = {int, RandomState instance, None}, default = None
  14. add_indicator(출력값 보여주는 객체) = bool, default = False

2. y축과 각 데이터들의 관계 비교



3. 대체 실습

3-1. fillna()

3-1-1. 평균으로 대체

- 평균으로 대체한 뒤 OLS방식 회귀분석

 

3-1-2. 중앙값으로 대체

 

3-1-3. 최빈값으로 대체

 

3-2. 선형 보간법으로 대체

 

3-3. sklearn 패키지 - IterativeImputer

 

4. MSE값 비교

- 단순평균 대치법:  33.14034557114236
- 중앙값으로 대치:  33.14059829806533
- 최빈값으로 대치:  33.374030268877995
- 선형보간법:          33.001239763278825
- IterativeImputer:   32.700880038279024