본문 바로가기

Python/Data Analysis

Data Analysis / ML / Linear Regression Model

< Linear Regression Model 예시 >

1. 공부시간에 따른 성적 예측

Linear Regression Model

2-1. 온도에 따른 오존량 예측 - python

  • 결측치 제거
  • 데이터 정규화 작업 (학습에 필요한 컬럼 추출, 생성)

ozone-python

2-2. 온도에 따른 오존량 예측 - sklearn

※ sklearn은 데이터분석, ML 라이브러리 중 하나로 효율이 좋기로 유명하다.

ozone-sklearn

※ 예측값 비교

  • python으로 직접 구현 : 34.56270003
  • sklearn 이용 : 3.58411393

※ 데이터 전처리 및 정규화를 하지 않아서 값의 차이가 발생

< Data Preprocessing >

1. 이상치(Outlier) 처리

  • 일반적인 값보다 편차가 큰 값들을 의미
  • 데이터 전체 패턴에서 동떨어져 있는 관측치
  • 평균과 분산에 영향을 미치기 때문에, 데이터 전체의 안정성을 저해하는 요소
  • 일반적으로 검출 및 처리에 많은 시간이 소요됨
  • 이상치 처리의 종류
    1. Z-Score : 분산, 표준편차를 이용하는 이상치 검출 - 통계기반
    2. Tukey Outlier : 4분위 값을 이용하는 이상치 검출
  • 이상치 종류
    1. 지대점 : 독립변수에 있는 이상치
    2. Outlier : 종속변수에 있는 이상치

2. Tukey outlier 예제

  • 4분위값을 이용한 outlier 감지
  • boxplot을 이용해서 확인 가능

box plot

  • IQR value = 3사분위값(Q3) - 1사분위값(Q1)
  • 이상치 판별 기준
    • 1사분위수 - (1.5 * IQR value) 값보다 작은 값은 이상치로 판별
    • 3사분위수 + (1.5 * IQR value) 값보다 큰 값은 이상치로 판별

tukey outlier box plot

3. Z-Score 예제

  • 우리가 사용하는 데이터를 정규분포로 만들고, 각 데이터가 표준편차상 어디에 위치하는지 알려주는 값
  • threshold 값을 선정해서 범위 밖의 데이터들을 이상치로 간주
  • 일반적으로 threshold 값은 2.0 정도로 잡음 (97.7%)

Z-Score

※ scipy 라이브러리를 이용하면 간단히 구현 가능

4. 오존량 예제 - 이상치 처리

※ 예측값 비교

  • python으로 직접 구현 : 31.97023319
  • sklearn 이용 : 3.58411393

※ 정규화를 하지 않아서 값의 차이가 발생