파이썬 Sklearn 패키지
Data Analyticsㅤ/ㅤMachine Learningㅤ

파이썬 Sklearn 패키지

sklearn 개요

 

실행

0) 설치

1) 모델 선언

2) 학습

  • fit(데이터, 예측값)

3) 예측

  • predict(새로운 값)
pip install -U scikit-learn

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

model = LinearRegression() # 모델 선언
model.fit(x_train, y_train) # 학습
prediction = model.predict(x_test) # 예측

 

용어

- X (features)

  • x_train, x_test 로 변수명 지정한다
  • 학습을 위한 데이터 셋, 예측할 값(y)은 빠져있다
  • Eg) 지역, 평형 정보, 층수 정보, 동네, 거주민 평균 나이 등

 

- Y (labels)

  • y_train 로 변수명 지정한다
  • 예측해야할 값, 예측 값만 존재한다
  • Eg) 집 값

 

Train set & Test set

- 레이블이 있냐 없냐로 구분 된다

- Training set (x_train, y_train) : 모델이 학습을 하기 위한 데이터. feature 와 label 모두 존재

- Test set (x_test) : 예측하기 위한 데이터. feature 만 존재

 

과대적합 / 과소적합

- Overfitting : 테스트에 너무 적합하게 학습되어 예측성이 떨어지는 상태

- Underfitting : 테스트셋으로 학습이 덜 되어있는 상태

- 학습을 시키면 training error는 계속 떨어지지만, testing error는 떨어지다가 다시 올라간다

$\quad\rightarrow$ 둘 다 저점인 지점이 optimum!

 

Validation Set

  1. training set에서 80% : 20% 정도로 데이터를 나눠놓는다
  2. 80%의 train set으로 학습시킨다
  3. validation set으로 검증해나가면서 validation error가 올라가는 시점이 가장 좋은 시점이라고 판단한다

- 학습할 때 절대 validation set이 관여하면 안된다

 

 

전처리 (Pre-processing)

전처리를 왜 하는가?

- Garbage in, Garbage out!

- 데이터 분석에 적합하게 데이터를 가공 / 변형 / 처리 / 클리닝

- DB엔지니어가 하는 경우도 있고, 분석가가 하는 경우도 있음 -> 난 다 할끄야!

전처리 과정

  • 이상치
  • 정규화 (Normalization) : 0~1 사이의 분포로 조정
    • MinMaxScalar
  • 표준화 (Standardization) : 평균을 0, 표준편차를 1로 맞춤
    • StandardScalar
  • 샘플링 (Over/Under sampling)
  • 피처 공학 (Feature Engineering)
    • 피처 생성, 연산
    • 구간 생성(binning), 스케일 변형 ...

 

sklearn.org 및 패스트캠퍼스 강의를 참고하여 작성했습니다