[교안] 모델링 코드 구조

고근호·2023년 9월 11일

Scikit-Learn 소개

  • 지도/비지도 학습 알고리즘을 제공하는 대표적인 파이썬 라이브러리
  • sklearn이라고 쓰고 '사이킷런' 이라고 읽음
  • 오픈 소스로서 개인, 비즈니스 관계없이 누구나 무료로 사용가능
  • 여러 알고리즘을 같은 구조의 코드로 사용할 수 있어 배우기 쉬움
  • Iris, Boston과 같은 다양한 예제 데이터셋(토이 데이터셋)을 포함하고 있어 학습에 용이
  • 처음 Machine Learning을 배울 때 가장 적합한 라이브러리
  • 모델링 과정에서 필요한 함수를 sklearn에서 불러와 사용함
# 학습용, 평가용 데이터 분리
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)
# 불러오기
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error, r2_score

Scikit-Learn 모델링 코드 구조

1. 불러오기

  • 사용할 알고리즘과 평가를 위한 함수 import
    		from sklearn.linear_model import LinearRegression
            from sklearn.metrics import mean_absolute_error

2. 선언하기

  • 사용할 알고리즘을 함수로 모델 선언
    		model = LinearRegression()

3. 학습하기

  • 모델.fit(x_train, y_train) 형태로 모델 학습 시키기
    		model.fit(x_train, y_train)

4. 예측하기

  • 모델.predict(x_test) 형태로 예측한 결과 변수로 저장
    		y_pred = model.predict(x_test)

5. 평가하기

  • 실젯값과 예측값을 평가 함수에 전달해 성능 평가
    		mean_absolute_error(y_test, y_pred)

데이터 준비 과정

  • 머신러닝은 데이터에서 규칙을 찾고 그 규칙에 기반해 예측 하는 것 → 데이터 준비 과정이 필요!!!
  • 충분히 학습하고 평가할 수 있는 좋은 데이터가 준비 되어야 좋은 모델을 기대할 수 있음
  • 대상 데이터를 불러와 충분히 탐색하고 적절히 전처리 한 후 데이터 분리 과정을 수행
# 라이브러리 불러오기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 데이터 읽어오기
data = pd.read_csv('airquality.csv')
# x, y 분리
target = 'Ozone'
x = data.drop(target, axis=1)
y = data.loc[:, target]

# 학습용, 평가용 데이터 분리
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3) 

➔ 학습용, 평가용 데이터를 나누기 전에 전처리가 필요할 수 있겠군!

모델링 과정

# 1단계: 불러오기
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error

# 2단계: 선언하기
model = LinearRegression()

# 3단계: 학습하기
model.fit(x_train, y_train)

# 4단계: 예측하기
y_pred = model.predict(x_test)

# 5단계: 평가하기
print(mean_absolute_error(y_test, y_pred))

➔ 이렇게 단순해?

머신러닝 학습과정(권고사항)

  • 분류와 회귀 이해
  • 모델링 코드 무작정 익히기
  • 평가 방법 이해
  • 중요 알고리즘 원리 이해

우선 사용하고, 그 다음에 배우기!

profile
rootgo 매일, 꾸준히 성장하는 사람🌱

0개의 댓글