모델, 모델링
-
모델(Model)
- 데이터로부터 패턴을 찾아
- 수학식으로 정리해 놓은 것
- 모델링(Modeling): 오차가 적은 모델을 만드는 과정
-
모델의 목적
- 샘플을 가지고 전체를 추정
- 샘플: 표본, 부분집합, 일부, 과거의 데이터
- 전체: 모집단, 전체집합, 현재와 미래의 데이터
- 추정: 예측, 추론
학습을 통해 ➔

행, 열
열(Column)
- 특성(Feature)
- 속성(Attribute)
- 변수(Variable)
- 필드(Field)
행(Row)
- 개체(Instance)
- 관측치(Observed Value)
- 기록(Record)
- 사례(Example)
- 경우(Case)

독립변수, 종속변수

- '𝑥1, 𝑥2,… 𝑥𝑛 값이 변함에 따라 𝑦 값이 변한다'라고 할 때
- 독립적으로 변할 수 있는 값은?
- 종속적으로 변하는 값은?
- 독립변수를 𝑥 로, 종속변수를 𝑦로 표시함
y = ax + b
오차
- 평균과 오차
- 통계학에서 사용되는 가장 단순한 모델 중 하나가 평균
- 관측값(=실젯값)과 모델 예측값의 차이 : 이탈도(Deviance) ➔ 오차

➔ 평균도 모델이다!
데이터 분리
- 데이터 셋을 학습용, 검증용, 평가용 데이터로 분리 함
- 실전에서는

- 평가용 데이터는 별도로 제공되는 데이터일 경우가 많음
- 검증용 데이터로 평가 전에 모델 성능을 검증해 볼 수 있음(튜닝 시 사용)
- 수업에서는

- 성능 검증 없이 배우는 과정에서는 편의상 모델을 만든 후 평가용으로 바로 평가
데이터 분리 - x, y 분리

➔ 여러 방법이 있겠지만, 우리는 이렇게 나누도록 합니다.
# 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)
과대적합 vs 과소적합
-
과대적합(Overfitting)
- 학습 데이터에 대해서는 성능이 매우 좋은데, 평가 데이터에 대해서는 성능이 매우 좋지 않은 경우
- 학습 데이터에 대해서만 잘 맞는 모델 ➔ 실전에서 예측 성능이 좋지 않음
-
과소적합(Underfitting)
- 학습 데이터보다 평가 데이터에 대한 성능이 매우 좋거나, 모든 데이터에 대한 성능이 매우 안 좋은 경우
- 모델이 너무 단순하여 학습 데이터에 대해 적절히 훈련되지 않은 경우
