[LG U+ Why Not SW Camp 7기] 7월 3주차 회고

배형진·2025년 7월 20일

Why not SW 부트캠프

목록 보기
1/11
post-thumbnail

🔎 3주차 학습 목표 및 개요

이번 주는 확률이론에 대하여 학습을 진행하였고 머신러닝의 기초적인 개념과 프로세스 그리고 분류 예측 모델을 학습시키는 실습을 하였습니다.

[확률 이론의 학습과 머신러닝 기초 개념 및 프로세스 이해도 강화, 그리고 분류 예측 모델 학습 및 평가 지표 이해를 통해 머신러닝 실전 역량을 강화하는 것] 을 목표로 삼았습니다


📚 주요 학습 및 진행 내용 정리

1. 확률이론

확률의 개념에 대해서 공부하였으며 확률분포가 무엇인지 학습하고 분포에는 어떠한 종류들이 있는지 알아보는 시간을 가졌습니다.

  • 확률의 개념: 기본적인 개념과 성질에 대해 배웠으며 특히 베이즈 정리와 우도에 대해 심도 있게 학습을 하였습니다
  • 확률분포: 중심극한정리, 표집 분포와 같은 확률분포 관련 개념들을 학습하였습니다.
  • 확률분포의 종류: 이산확률 분포와 연속확률 분포에서 각각 어떠한 확률 분포들이 있는지 스터디를 하였습니다

2. 머신러닝 개념과 프로세스

머신러닝의 정의, 그리고 일반 프로그램과 딥러닝과의 차이점을 알아보았으며 어떠한 프로세스를 거쳐서 모델학습 및 예측을 하는지 살펴보았습니다

  • 인공지능과 머신러닝, 딥러닝: 각각의 개념에 대해 학습을 하였고 어떠한 차이가 있는지 알아보았습니다. 또한 머신러닝이 어떠한 원리로 작동하는지 배웠습니다.
  • 머신러닝의 학습방법: 학습방법에 지도 및 비지도, 강화학습이 있다는 것을 배웠고 이에 맞게 학습 알고리즘을 선택해야 한다는 것을 알게 되었습니다
  • 머신러닝 프로세스: 데이터 전처리, 인코딩 및 스플릿 등 머신러닝 프로세스를 단계별로 직접 실습해보면서 익혔습니다.

3. 머신러닝 - 분류모델

머신러닝의 모델 중 지도학습을 통한 분류 예측을 하는 모델들을 다루고 정확도, 재현률 등을 통해 평가를 하는 법을 배웠습니다.

  • 의사결정나무: 의사결정 규칙을 나무 구조로 표현하는 알고리즘
  • 앙상블: 여러 개의 모델을 조합하여 더 성능이 좋은 모델을 만드는 기법으로 배깅, 부스팅, 스태킹과 같은 방식이 있다
  • KNN 알고리즘: 예측하려는 데이터에서 가장 가까운 군집으로 따라가는 알고리즘
  • 로지스틱 회귀: 결과를 0과 1사이로 나누어 임계값을 기준으로 0 또는 1로 나누는 알고리즘
  • 분류모델 평가: accuract score나 혼동행렬 등을 통해 정확도, 정밀도, 재현률을 보고 모델의 성능을 판단하였습니다. 또한 상황에 따라 항상 정확도만이 아닌 재현률 역시 중요하다는 것을 배웠습니다.

🎮 실습/과제 수행 및 문제 해결 과정

이번 주에 실습하면서 겪었던 어려움이나 궁금증의 해결 과정을 기록하였습니다

다음은 머신러닝 실습을 수행하면서 겪었던 문제점 입니다

Kaggle에서 신용카드 위조 감지를 위한 데이터를 가져와서 실습을 해보았습니다.

아래 사진과 같이 앙상블에서 부스트 기법을 적용한 XGBOOST를 이용하여 모델을 학습시키고 테스트 결과를 살펴 보았습니다.

로지스틱 회귀와 랜덤포레스트 및 의사결정 나무를 비교하였을 때 가장 정확도가 높았고 처음에는 99.95퍼센트의 정확도면 굉장히 만족스러운 결과라고 생각을 하였습니다

하지만 강사님께서 케이스마다 다르지만 재현율 역시 고려해야 한다고 조언을 해주셨고 다시 고민을 해본 결과 실제로 신용카드 위조를 당했지만 당하지 않았다고 예측하는 케이스가 굉장히 위험하다고 생각을 하였습니다.
그 결과 위조를 당했다고 예측한 케이스 중에서 실제로 위조를 당한 케이스의 비율인 재현율을 높히자고 판단을 하였습니다.

현재 혼동행렬을 통한 위의 결과를 보면 재현율(recall)이 대략 79퍼센트 되는 것을 확인할 수 있습니다.
따라서 재현율 개선을 위해 현재 데이터의 이상치를 제거하고 다시 모델을 돌리자고 생각을 하였습니다.

상관계수 분석을 통해 V14, V17컬럼이 amount와 상관관계가 높다는 것을 파악하였고 이 컬럼들 위주로 이상치를 제거하기로 결정하였습니다
먼저 V14의 이상치들을 제거하였을 때의 결과 입니다.

정확도, 재현율 모두 약간씩 오른 것을 확인 할 수 있었습니다.

(V17 컬럼 제거와 파라미터 수정을 통해 개선한 재현률입니다)


머신러닝 실습을 수행하면서 느낀점

이번 실습을 진행하면서 머신러닝이 어떠한 원리로 진행되는지 알게 되었고 목적에 맞는 알고리즘들을 사용하고 결과를 비교해보는 것을 배웠다 이 과정에서 파라미터의 수정을 통해 예측율을 올리는 것도 중요하지만 데이터를 학습시키기 전에 먼저 분석을 하여 어떤 데이터를 학습을 시켜야 하는지 고민을 많이 해봐야 한다는 사실을 느끼게 되었다. 더 나아가 단순히 정확도 뿐만 아니라 재현률의 중요성을 깨닫게 되는 여러모로 유익한 시간이었다고 생각한다


🔮 3주차 주간 회고

💎 Liked (좋았던 점)

  • t검정, 상관분석 등 이전에 배운 개념들이 다시 등장하며 이해도가 확실히 높아졌고, 복습이 자연스럽게 되었다.
  • 머신러닝 모델의 원리를 직접 코드로 확인하고 실습하면서 개념이 머리에 잘 들어오고 재미도 느껴졌다.
  • 다양한 분류 알고리즘(의사결정나무, 로지스틱 회귀, KNN, XGBoost 등)을 비교하며 모델 성능을 확인할 수 있어 흥미로웠다.
  • 데이터를 직접 다루고 모델링·예측까지 이어지는 과정에서 실용성과 연결성이 느껴졌다.

🌱 Learned (배운 점)

  • 통계 및 확률: T검정, ANOVA, 베이즈 정리, 확률분포 개념 정리.
  • 상관분석 및 회귀: 상관계수, 결정계수 실습 및 해석.
  • 머신러닝 프로세스: 데이터 분할, 피처 스케일링, 원핫 인코딩, Null 처리 전략 등 실무 중심 전처리 과정 체득.
  • 분류 알고리즘: 로지스틱 회귀, 의사결정나무, KNN, 앙상블(XGBoost, 랜덤포레스트) 모델의 작동 원리와 적용 방식.
  • 모델 평가: 혼동행렬, 재현률, 정밀도, 정확도 등 다양한 평가 지표의 중요성.

💡 Lacked (부족했던 점)

  • 통계 및 머신러닝 용어에 익숙하지 않아 강의 중 개념 이해에 시간이 소요됨.
  • 딥러닝 원리와 교차검증, 앙상블 모델 등 일부 개념은 직관적으로 와닿지 않아 복습이 필요함.
  • Null 처리나 인코딩 등 전처리 시 무작정 적용해버리는 습관이 남아 있었음.
  • 모델 학습 결과를 재현률 중심으로 해석하지 않아 실무적 판단력이 부족했다는 점도 체감함.
  • Git 사용 실수로 학습 파일을 날리는 경험을 하며 관리에 대한 중요성을 체감.

📌 Longed for (바라는 점 / 다음 목표)

  1. 주요 개념(혼동행렬, 교차검증, GBM, 딥러닝 등)을 다시 정리하고 손으로 직접 정리 노트 작성.
  2. 학습한 분류 모델들의 리드미 작성 및 깃허브 정리, 재현률 중심 평가로 모델 성능 재검토.
  3. CSV 파일 관리 및 Git 사용에 있어 파일 제외 설정 및 커밋 전 세이브 습관화.
  4. 신용카드 분석 모델 복습과 블로그 정리, 정처기 이론 및 QnA 작성 등 병행 목표 관리.

📆 이번 주말 학습 계획

이번 주말에는 정보처리기사의 필기 시험을 대비하여 1,4과목 이론 스터디와 1과목 기출문제 3개년을 풀 계획이며, 이번에 배운 분류모델의 학습 및 평가를 이상치 처리와 파라미터 수정을 통해 재현율을 높히는 방향으로 연습할 예정입니다.

0개의 댓글