머신러닝에서 '모델이 오판한 경우 오판을 내린만큼 패널티를 준다.' 라고 배웠습니다.
여기서 의미하는 '패널티'를 계산하는 함수가 손실함수 입니다.
모델이 오판한 경우에 이를 정량화한 함수를 loss 의 양이라고 하는데 이를 손실함수라고 합니다. 정량화된 값을 줄이기 위해 파라미터를 업데이트합니다.
- 모수적 방법은 '데이터 분포에 대한 가정' (= 특정분포를 따른다라는 가정을 한다라는 의미) 을 하지만
비모수적 방법은 '데이터의 분포에 대한 가정'을 하지 않습니다. 분포에 대한 가정을 하지 않기 때문에 자유도가 높으며 분포에 대한 제약을 받지 않습니다.
- 모수적 방법은 모델에 의해서 학습 파라미터가 정해져 있습니다. 즉, 단순 선형회귀 y = B0 + B1X 일 경우 학습파라미터는 기울기 B1과 절편 B0입니다.
손실함수(Loss Function) 은 이 실제값과 예측값의 차이를 최소화하는 방법으로 학습파라미터를 조정합니다.
비모수적 방법은 데이터가 학습방법에 따라 달라질 수 있습니다.
일반적으로 모델 최적화에서는 입출력 값의 차이를 좁혀나가는 모수적 방법이라고 생각합니다.
■ RMSE - Root Mean Square Error
RMSE는 회귀모델에서 자주쓰이고 대표적인 손실함수입니다.
■ Cross Entropy
분류 모델에서 자주 쓰는 대표적인 손실함수입니다.
# SAS Code - Cross Entrppy
PROC SURVEYSELECT DATA=sashelp.iris OUT=train_test_split METHOD=SRS SAMPRATE=0.7 OUTALL;
ID _ALL_;
RUN;
DATA train;
SET train_test_split;
IF selected=1;
RUN;
DATA test;
SET train_test_split;
IF selected=0;
RUN;
sashelp 라이브러리의 iris 데이터를 활용해 train 데이터와 test 데이터를 70:30으로 분리합니다.
PROC HPSPLIT DATA=train;
CLASS Species;
MODEL Species = SepalLength SepalWidth PetalLength PetalWidth;
RUN;
Decision Tree 모델을 생성합니다.
PROC HPSPLIT statement로 Decision Tree 의 성능을 요약하였습니다.
Split Criterion Used 는 Decision Tree의 분할 기준을 Entropy 함수를 사용했다라는 것을 의미합니다.
Number of Branches: 2 - 트리에서 생성된 가지의 수는 2개 입니다.
Maximum Tree Depth Requested: 10 - 최대 트리 깊이로 10개를 사용했습니다.
Tree Depth: 5 - 최종적으로 사용된 트리의 깊이를 의미합니다.
X축은 Number of Leaves로 트리의 가지치기 과정 중에서 남겨진 노드(leaf) 수를 의미합니다.
Y축은 Entropy로 모델의 불확실성을 나타내는 척도로 값이 낮을수록 모델의 분류가 명확하다는 것을 알 수 있습니다.
Leaf의 개수가 많아질수록 엔트로피는 감소하지만 Underfitting 이 되어 데이터의 패턴을 제대로 학습하지 못할 수 도 있습니다.
위 모델에서는 9개의 Leaf가 가장 적절합니다.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!