본문 바로가기
KT에이블스쿨/에이쁠 기자단

[KT 에이쁠 기자단] 4주차 후기(8.28~9.01) - 머신러닝

by 롱싱싱 2023. 9. 9.

안녕하세요!

 

에이블 스쿨 4주차가 종료되었습니다!

 

이번 주차에는 드디어 머신러닝 강의가 진행되었는데요!

이장래 강사님의 강의와 함께 직접 머신러닝 코드를 작성하며 분류, 회귀문제에 대한 답을 찾아보았습니다.

이번 강의는 중요한 강의인 만큼 무려 5일 동안 진행되었는데요. 그만큼 많은 내용을 배울 수 있었습니다.

8.28~9.1

머신러닝

 


머신러닝

학습 방법에 따른 분류

지도학습

  • 학습 대상이 되는 데이터에 정답을 주어 규칙성, 데이터의 패턴을 배우게 하는 학습 방법

비지도학습

  • 정답이 없는 데이터 만으로 배우게 하는 학습 방법

강화학습

  • 선택한 결과에 대해 보상을 받아 행동을 개선하면서 배우게 하는 학습 방법

 

과제에 따른 분류

분류 문제

이미 적절히 분류된 데이터를 학습하여 분류 규칙을 찾고, 그 규칙을 기반으로 새롭게 주어진 데이터를 적절히 분류하는 것을 목적으로 함(지도 학습) —> 범주형 데이터

회귀 문제

이미 결과 값이 있는 데이터를 학습하여 입력 값과 결과 값의 연관성을 찾고, 그 연관성을 기반으로 새롭게 주어진 데이터에 대한 값을 예측하는 목적으로 함(지도학습) —>수치형 데이터

클러스터링

주어진 데이터를 학습하여 적절한 분류 규칙을 찾아 데이터를 분류함을 목적으로 함, 정답이 없기 때문에 성능을 평가하기 어렵다(비지도 학습)

 

 


지도학습

분류문제 회귀문제
DecisionTreeClassifier
KNeighborsClassifier
LogisticRegression(regression이라고 쓰지만 분류임!!)
RandomForestClassifier
XGBClassifier
LinearReagression
KNeighborsRegressor
DecisionTreeRegressor
RandomForestRegressor
XGBRegressor
accuarcy_score
recall_score (실제 1인 것 중 1이라고 예측한 비)
precision_score (1이라고 예측한 것 중 실제 1)
classification_report
confusion_matrix
mean_absolute_error
mean_squared_error
root mean_squared_error
mean_absolute_percentage_error
r2_score

분류문제냐, 회귀문제냐에 따라 사용하는 모델이 달라서 처음에는 헷갈리는 것이 많았는데

계속 사용하다보니 분류인지 회귀인지 구별하고 각 모델과 성능평가를 알맞게 사용할 수 있었습니다. 

 

회귀모델 성능평가

MSE (Mean Squared Error)

RMSE (Root Mean Squared Error)

MAE(Mean Absolute Error)

MAPE (Mean Absolute Percentage Error)

위 값이 작을 수록 모델 성능이 좋음

 

SST(Sum Squared Total, 전체 오차) : 우리에게 허용된 오차. 실제값 - 평균 값의 제곱의 합

SSR(Sum Squared Regression)  : 전체 오차 중에서 회귀식이 잡아낸 오차. 예측값- 평균값 제곱의 합

SSE(Sum Squared Error) : 전체 오차 중에서 회귀식이 여전히 잡아내지 못한 오차. 예측값-실제값 제곱의 합

SST = SSE+SSR

 

R2 결정계수

전체 오차 중에서 회귀식이 잡아낸 오차 비율

R^2 = SSR/SST

 

분류모델 성능평가

혼동행렬

  예측값
0 1
실제값 0 3 1
1 2 4

1과 0을 정확히 예측한 비율(Accuracy) = 7/10

1이라고 예측한 것 중 실제 1인 비율(Precision) = 4/5

실제 1인 것 중 1이라고 예측한 비율(Recall) = 4/6

 

처음 배울 때는 Precision과 Recall이 많이 헷갈렸었는데. 예측(Predict) - Precision으로 외웠더니 쉽게 외울 수 있었다.


과대 적합, 과소 적합

과대적합(OverFitting)

  • 학습 데이터에 대해서는 성능이 매우 좋은데, 평가 데이터에서는 대해서는 성능이 매우 좋지 않은 경우
  • 학습 데이터에 대해서만 잘 맞는 모델 → 실전에서 예측 성능이 좋지 않음

과소 적합(Underfitting)

  • 학습 데이터보다 평가 데이터에 대한 성능이 매우 좋거나, 모든 데이터에 대한 성능이 매우 안 좋은 경우
  • 모델이 너무 단순하여 학습 데이터에 대해 적절히 훈련되지 않은 경우

Linear Regression

y = ax+b

주어진 데이터를 가지고 기울기(가중치)와 절편(편향)을 찾아냄

 

KNN (K-Nearest Neighbor)

K-Nearest Neighbor: k 최근접 이웃( 가장 가까운 이웃 k개)

학습용 데이터에서 k개의 최근접 이웃의 값을 찾아 그 값들로 새로운 값을 예측하는 알고리즘

 

Decision Tree

특정 변수에 대한 의사결정 규칙을 나무 가지가 뻗는 형태로 분류

분석 과정을 실제 눈으로 확인할 수 있음 → 화이트박스 모델

 

Logistic Regression

로지스틱 함수(시그모이드)

확률 값 p는 선형 판별식 값이 커지면 1, 작아지면 0에 가까운 값이 됨

분류 모델에만 사용 가능

 

앙상블

약한 모델을 결합하여 더 정확하고 견고한 모델을 생성

보팅, 배깅, 부스팅, 스태킹


이외에도 클래스 불균형시 OverSampling, UnderSampling하여 Recall을 높이는 경우,

K개의 분할에 대한 성능을 예측하는 K-Fold Cross Validation

각 모델의 하이퍼 파라미터를 조정하는 방법 등에 대해서도 배웠습니다!!


4주차 총 정리

시작할 때만 해도 언제 이걸 5일 동안 배우나 하고 생각했었는데, 정말 순식간에 지나간 것 같습니다.

 

학교 전공시간에 배운 내용도 있었지만 새롭게 배운 내용도 많아서 도움이 많이 되었습니다. 머신러닝의 기본 개념부터 고급 주제까지 넓은 범위의 지식을 습득할 수 있었습니다.

처음에는 머신러닝이 어려울 것 같았지만, 강의에서는 간단하고 명확한 설명과 다양한 예제를 통해 내용을 이해하기 쉽게 전달해주었습니다. 특히, 데이터 전처리, 모델 선택, 하이퍼파라미터 튜닝 및 결과 해석과 같은 실제 머신러닝 프로젝트를 수행하는 방법에 대한 실질적인 지침을 얻었습니다.

 

그래도 아직 부족하다고 생각하는 부분들이 있다고 생각돼서 강의 다시보기와 복습을 통해 부족한 부분을 채워가려고 합니다!