본문 바로가기

KT AIVLE DX 3기

[KT AIVLE SCHOOL_DX] 6주차 후기 (3/6 ~ 3/10)

728x90
일자 교육내용
3/6 머신러닝 소개
3/7 성능 평가
3/8 Linear Regression, K-Nearest Neighbor
3/9 Decision Tree, Logistic Regression
3/10 Support Vector Machine, K-Fold Cross Validation

# 3/6 머신러닝 소개

오늘부터  머신러닝 수업이 시작되었습니다. 

이번 수업 과정은 전에 데이터 다루기 수업을 진행해 주셨던 강사님께서 진행해 주셨습니다.

첫날이다 보니 실습보다는 이론 위주의 수업이었으며, 머신러닝에 대한 간단한 소개와 앞으로 머신러닝 과정의 실습을 진행하면서 사용할 사이킷런 라이브러리에 대해 배웠습니다.


# 3/7 성능 평가

머신러닝에는 학습 대상이 되는 데이터에 정답을 주어 데이터의 패턴을 배우게 하는 학습 방법인 지도학습이 있고, 지도학습은 과제에 따라 분류 문제와 회귀 문제로 나누어집니다.

오늘은 분류 문제와 회귀 문제의 성능을 평가하는 지표에 대해 배습니다.

회귀 모델의 경우, 예측값과 실제값의 차이인 오차를 이용해 모델 성능을 평가해야 하는데, 이를 평가하기 위한 지표인 MSE, RMSE, MAE, MAPE 등에 대해 배웠습니다. 그리고 분류모델은 회귀모델과 달리 실제값을 정확히 예측한 비율로 모델의 성능을 평가해야 하기 때문에 이를 평가하는 지표인 혼동행렬과, 정확도, 정밀도, 재현율 등에 대해 배웠습니다.


# 3/8 Linear regression, KNN

오늘은 머신러닝의 기본 알고리즘인 Linear Regression과 KNN에 대해 배웠습니다.

Linear Regression은 독립변수의 개수에 따라 단순회귀분석과 다중회귀분석으로 나눌 수 있으며, 최적의 모델은 평균보다 오차를 최소로 하는 모델인데, 해당 모델에서는 계수와 절편을 꼭 확인해야 하며, 변수가 많아 이를 한눈에 확인하기 어려운 다중회귀분석의 경우에는 시각화를 해서 보면 더 좋다는 것을 배웠습니다.
그리고 KNN의 경우 이웃의 수 즉, k값이 클수록 모델이 단순해지기 때문에 적절한 k값을 정해주는 것이 중요함을 배웠고, 해당 모델의 경우, 변수를 정규화시켜서 분석을 해주어야 하기 때문에 정규화를 위한 MinMaxScaler 함수에 대해서도 배웠습니다.


# 3/9 Decision tree, Logistic regression

오늘은 전날의 수업에 이어서 머신러닝의 알고리즘인 의사결정 나무와 로지스틱 회귀에 대해서 배웠습니다.

의사결정 나무는 특정 변수에 대한 의사결정 규칙을 나무 가지가 뻗는 형태로 분류해 나가는 방법으로 정보이득이 클수록 분류가 잘되었음을 의미하며, 모델링을 할 때, 과대적합을 방지하기 위해서 max_depth 같은 하이퍼파라미터 값을 조정해 적절한 가지치기를 하는 것이 필요하다는 것을 배웠습니다. 
또한 로지스틱 회귀는 Linear Regression과 달리 선형 회귀선을 찾는 것이 아니라 로지스틱 함수에 의해 반환되는 값을 확률로 간주하여 그 확률에 따라 분류를 결정하는 알고리즘으로 앞서 배웠던 다른 알고리즘과는 달리 분류문제에서만 사용된다는 것을 배웠습니다.


# 3/10 Support Vector Machine, K-Fold Cross Validation, 코딩 마스터스 종료

오늘은 기본 알고리즘의 마지막인 Support Vector Machine과 K 분할 교차 검증에 대해 배웠습니다.

SVM은 분류를 위한 기준선인 결정 경계선을 찾는 알고리즘으로 전에 배웠던 KNN 알고리즘처럼 성능을 높이기 위해 변수를 정규화하는 과정이 필요하다는 것을 알게 되었습니다. 또한 알고리즘을 모델링한 결과를 더 정교하게 평가하기 위한 방법인 K 분할 교차 검증에 대해서 배웠고, 지금까지 배웠던 알고리즘을 이용해 성능을 비교하는 실습을 진행했습니다.

그리고 약 한 달간 진행되었던 코딩 마스터스가 종료되었습니다. 저는 이번 코딩마스터스에서 기초 문제 밖에 풀 수 없었지만, 조금씩 공부해서 다음에 있을 코딩 마스터스에서는 좀 더 많은 문제를 풀 수 있으면 좋겠습니다.


[6주차 후기]

이번 주 수업기간 동안 머신러닝 알고리즘에 대해 배우면서 머신러닝의 개념과 관련 용어에 대해 배우고, 기본적인 알고리즘의 모델링 코드를 작성하고 성능을 평가하는 방법에 대해 배웠습니다. 수업에서 하나씩 차례대로 배울 때는 괜찮았지만, 다음 주에 있을 미니프로젝트에서 배운 내용을 잘 적용할 수 있을지 걱정이 됩니다. 다음 주 수업도 이번주처럼 따라가기 힘들지 않을 정도만 되면 좋겠습니다.

728x90