View

내일배움캠프 5주차 WIL

수현조 2025. 1. 3. 18:51

1. 배운 내용

 (1) GridSearchCV를 사용하여 Decision Tree 모델의 하이퍼파라미터를 최적화하는 방법을 학습했습니다.

 (2) K-Fold 교차 검증을 활용하여 데이터를 안정적으로 평가하고, 최적의 하이퍼파라미터 조합을 도출했습니다.

 (3) 하이퍼파라미터(max_depth, min_samples_split, min_samples_leaf)의 의미와 설정이 모델 성능에 미치는 영향을 이해했습니다.


2. 세부 설명

GridSearchCV

  1. 하이퍼파라미터를 탐색할 수 있는 Scikit-learn 도구로, 모든 조합을 평가하여 최적의 모델을 선택합니다.
  2. 사용한 하이퍼파라미터
    parameters = {'max_depth': [2, 3, 5, 10],
                  'min_samples_split': [2, 3, 5],
                  'min_samples_leaf': [1, 5, 8]}
    
  3. 최적의 조합
    {'max_depth': 5, 'min_samples_split': 3, 'min_samples_leaf': 1}
    
  4. 최고 교차 검증 정확도: 0.8412
  5. K-Fold 교차 검증
    • 데이터를 5개 Fold로 나누어 교차 검증을 수행.
    • 데이터 분할로 인한 편향을 줄이고, 안정적인 성능을 평가 가능.
  6. Decision Tree의 과적합 방지
    • max_depth : 트리의 깊이를 제한하여 과적합 방지.
    • min_samples_split와 min_samples_leaf : 노드 분할과 리프 노드의 최소 샘플 수를 조정하여 모델의 일반화 성능 향상.

3. 직면한 문제와 해결 방법

 1) 문제 : GridSearchCV 수행 시 하이퍼파라미터 조합이 많아 학습 시간이 길어졌습니다.

 2) 해결 방법

  • RandomizedSearchCV로 대체하여 일부 조합만 탐색.
  • 교차 검증 Fold 수를 5에서 3으로 줄여 학습 속도 향상.
  • 병렬 처리(n_jobs=-1) 옵션을 추가하여 학습 시간을 단축.

4. 느낀 점과 개선 방안

 1) 느낀 점

  • 하이퍼파라미터 설정이 모델 성능에 중요한 영향을 미친다는 것을 다시 한 번 깨달았습니다.
  • GridSearchCV는 편리하지만, 데이터나 하이퍼파라미터 조합이 많을 경우 실행 시간이 길어질 수 있다는 점도 배웠습니다.

 2) 개선 방안

  • 다른 모델(Random Forest, XGBoost 등)에 대해서도 GridSearchCV와 RandomizedSearchCV를 적용해 비교.
  • 성능 비교를 위해 ROC-AUC와 같은 추가적인 평가 지표를 학습 과정에 포함.
  • 대규모 데이터셋에서 실행 속도를 개선하기 위한 추가적인 방법 탐구.

Django 실습

1. Django - 배운 내용

 1) Django 프로젝트 구조 이해

  • settings.py, urls.py, views.py의 역할과 관계를 학습.
  • 앱 단위로 프로젝트를 관리하는 방식 익히기.

 2) 모델과 데이터베이스

  • models.py에서 모델 정의 및 데이터베이스 마이그레이션 과정 실습.
  • Admin 페이지에서 모델 데이터 관리 방법 이해.

 3) Django ORM : Django ORM을 사용하여 데이터 생성, 조회, 수정, 삭제(Create, Read, Update, Delete) 연습.


2. 학습한 내용에 대한 세부 설명

 1) 프로젝트와 앱 구성

  • 프로젝트는 여러 앱으로 나뉘며, 각 앱은 특정 기능에 초점을 맞춰 설계.
  • python manage.py startapp [app_name] 명령어로 앱 생성.

 2) URL 및 View 연동

  • urls.py에서 URL 패턴을 정의하고, views.py에서 요청을 처리하는 함수 작성.
  • URL과 View의 연계를 통해 사용자 요청 처리 흐름을 이해.

 3) Admin 페이지 활용 : Admin 페이지에 모델을 등록하여 데이터 관리 인터페이스 활용

from .models import MyModel
admin.site.register(MyModel)

3. 직면한 문제와 해결 방법

 1) 문제: 모델 변경 후 마이그레이션을 적용하지 않아 데이터베이스 구조가 갱신되지 않음.

 2) 해결 방법

  • python manage.py makemigrations와 python manage.py migrate 명령어 사용하여 문제 해결.
  • 모델 수정 후 마이그레이션 과정을 항상 확인하기로 다짐.

 1) 문제: Django ORM 쿼리 작성이 익숙하지 않아, 복잡한 데이터 조회에 어려움이 있었음.

 2) 해결 방법

  • 공식 문서와 Django 쉘(python manage.py shell)을 활용하여 ORM 쿼리 테스트.
  • 예제 쿼리
    from myapp.models import MyModel
    data = MyModel.objects.filter(name="John")
    

4. 느낀 점과 개선 방안

 1) 느낀 점

  • Django는 직관적인 설계로 초보자도 쉽게 웹 애플리케이션을 만들 수 있지만, 모델 정의와 마이그레이션 과정이 익숙해질 때까지 반복 학습이 필요하다는 점을 느꼈습니다.
  • ORM은 SQL보다 직관적이지만, 복잡한 쿼리 작성에는 추가적인 학습이 필요합니다.

 2) 개선 방안

  • Django 공식 문서의 튜토리얼을 따라 CRUD 작업을 더 익숙하게 만들기.
  • Django ORM의 활용 예제를 더 찾아보며 실습을 통해 익히기.
  • 추가적으로 Django의 사용자 인증, 템플릿 시스템 학습 계획 세우기.
Share Link
reply
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31