| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- GCP
- 데이터사시언티스트 #데이터 #모두의연구소
- 가상환경만들기
- 데이터분석환경
- 모두의연구소
- 데이터전처리
- 데이터사이언티스트
- nosql
- jupyter
- 데이터사이언티스트 #데이터 #모두의연구소 #데이터분석부트캠프
- anaconda3
- 데이터
- 데이터싸이언티스트
- 아나콘다3
- 아이펠톤
- 데이터분석
- 아나콘다설치
- 커널
- python
- 가상환경설정
- 데이터분석부트캠프
- MongoDB
- Today
- Total
EH_dream
딥러닝 학습 : 로이터 뉴스 분류 실습 _ 25.06.18 본문
머신러닝 모델 비교부터 Voting 앙상블까지 정리
이번 학습에서는 로이터 뉴스 데이터를 이용한 다중 분류 문제를 머신러닝 모델들로 해결해봤다. 텐서플로우에서 제공하는 reuters 데이터셋을 활용했고, 이 데이터는 총 46개의 클래스로 구성되어 있다. 뉴스 본문은 이미 단어 인덱스로 변환된 형태로 제공되어 있어, 별도 토큰화 없이 바로 사용할 수 있었고, 상위 10,000개의 단어만 사용하도록 제한했다.
각 뉴스 문장은 길이가 다 다르기 때문에 벡터화를 위해 먼저 텍스트로 디코딩한 후 TfidfVectorizer를 적용했다. 이 과정을 거쳐 전체 문서를 희소 행렬 형태의 수치 데이터로 만들었고, 이를 여러 머신러닝 분류기에 넣어 성능을 비교했다.
가장 먼저 로지스틱 회귀 모델을 적용했고, multi_class='multinomial', solver='lbfgs', max_iter=1000으로 설정해 안정적으로 학습시켰다. 그다음은 LinearSVC, 즉 서포트 벡터 머신을 사용했는데, 학습 속도는 빠르면서도 기본적인 성능은 준수했다. 랜덤 포레스트 분류기는 예측이 다소 보수적이지만 전반적으로 안정적인 결과를 보여주었고, Gradient Boosting Classifier는 훈련 시간은 조금 더 걸렸지만 더 미세한 결정 경계를 학습할 수 있었다.
Naive Bayes 계열에서는 ComplementNB를 사용했다. 이 모델은 특히 TF-IDF와 같은 희소 벡터에 잘 맞기 때문에 좋은 선택이었고, 빠르게 학습되면서도 꽤 괜찮은 성능을 보여주었다.
마지막으로 soft voting 방식의 VotingClassifier를 구성해 로지스틱 회귀, ComplementNB, Gradient Boosting을 결합했다. 확률 기반 soft voting으로 다수의 모델 예측을 평균 내 최종 클래스를 예측하는 방식이다. 이 모델은 로컬 환경 기준으로 학습에 약 30분이 소요되었으며, 단일 모델 대비 더 나은 결과를 보인 경우도 있었다.
전체적으로 모델별 accuracy와 macro F1-score를 통해 성능을 비교했고, confusion matrix도 시각화하여 오분류된 클래스 분포를 확인했다. 이번 실습은 다양한 머신러닝 모델의 비교, 그리고 Voting과 같은 앙상블 구성의 실제 효과를 확인할 수 있어 매우 실용적인 경험이었다.
'딥러닝' 카테고리의 다른 글
| 딥러닝 학습 정리 : 텍스트 벡터화 기법 정리_25.06.20 (0) | 2025.06.20 |
|---|---|
| 딥러닝 프로젝트 : Vocabulary Size에 따른 ML/DL 성능 비교_25.06.19 (0) | 2025.06.19 |
| 딥러닝 : LSA와 LDA (0) | 2025.06.18 |
| 딥러닝 : 비지도학습 토크나이저 _ 25.06.16 (1) | 2025.06.18 |
| 딥러닝학습 : 단어빈도와 벡터화 25.06.16 (0) | 2025.06.18 |