머신러닝-딥러닝

[머신러닝] 데이터 핸들링 & 모형 평가

옆동네애옹이 2024. 8. 9. 18:26
728x90

데이터 가공: 전처리

1) 결측치 처리: missing value(없는 값), Outlier(부적절한 값/이상치) 처리

2) 클래스 라벨 설정: class labeling

  - 범주형 데이터 -> 1, 2, 3, 4 등으로 코딩하는 행위 포함

  - One-hot Encoding: 오직 0, 1로만 표현 (Dummy 변수)

    -> NLP로 더 들어가면 BoW, TF-IDF 등 방법 있음

3) 데이터 스케일링(Data Scaling): 데이터값이 단위 영향 받지 않도록 변형

  - 표준화 스케일링: 데이터가 평균 0, 표준편차 1이 되도록 변경하는 방법(정규화) -> (값 - 평균) / 표준편차 

  - Robust scaling: Median, Quantile 사용 / (값 - 중위수(2사분위수)) / (3사분위수 - 1사분위수)

  - min-max scaling: 데이터의 최대값 1, 최소값 0으로 데이터가 가지는 범위 제한 / (값 - min(x)) / (max(x) - min(x))

  - Normal scaling: 벡터의 유클리디안 길이가 1이 되도록 변경, 방향(각도)만 고려할 때 사용

 

 

모형 평가

- parameter: 모형 내부에서 데이터에 의해 추정되는 값

- hyperparameter: 모형 생성에 쓰이는 데이터로부터 나온 값

 

- Overfitting: 모델이 특정 데이터셋에 과도하게 적합된 것, 특정 데이터셋 잘 푸나 딴거는 못 맞춤

- Underfitting: 데이터셋에 적합이 안됨

 

Cross-Validation (교차 검증): 주어진 데이터셋을 다양하게 조합해, 모형의 성능을 검증하는 것.

- Data를 Test / Validation / Train data로 나누어 검증 

  - Train data의 일부를 validation data로 나눠 사용 (e.g. k-nearest neighbor algorithm)

- K-fold cross-validation: 전체 데이터를 K개로 분할한 수 train/validation 조합을 바꾸는 행위

 

 

손실 함수/비용 함수

- 손실 함수: 예측값과 실제값의 차이 정도 / 주로 각 데이터포인트에 대한 차이

- 비용 함수: 주로 데이터포인트 전체 (데이터셋 전체)를 대상으로 하는 손실함수.

 

- MSE(Mean Square Error): sum((실제값 - 예측값)^2)

- RMSE = root(MSE) // MSE가 outlier에 민감하므로.

 

- Entropy: 확률 변수의 불확실성 정도를 측정, 의사결정나무에서 주로 사용

- Cross-entropy: 두 분포 P(x): 실제 모형 분포, Q(x): 추정 모형 분포에 대해 엔트로피를 측정해, 두 분포 간 차이를 계산 

 

 

모형 성능평가

model predicted, actual data값에 대한 confusion matrix

 

위 confustion matrix를 기반으로 한 평가지표

 

- precision(정밀도): P 예측 중 실제 P의 확률

- recall(민감도, sensitivity): 실제 P에 해당하는것 중 P로 예측되는 비율

- accuracy(정확도): 전체 데이터 중 T로 분류되는 비율

- F1 score: precision과 recall의 조화평균. 0~1값 가지며, 1에 가까울수록 고성능. 

728x90