728x90
머신러닝 모델링 프로세스
- 일반적인 흐름일 뿐 실제 수행할 업무 내용에 따라 세부 내용은 조금씩 달라질 수 있음
- 프로젝트 이해
- 문제 이해
- 해결해야 하는 문제에 대한 이해
- 분석 배경과 목적에 대한 이해
- 어떤 데이터를 활용해서 어떤 업무를 수행해야 하는지 확인
- 회귀, 분류, 데이터 접근 방법, 그 외 데이터와 관련된 다양한 사항을 확인
- 프로젝트 목표 설정
- 문제 이해의 내용을 바탕으로 프로젝트 목적과 산출물의 형태를 고려
- 분석 방법, 모델, 평가 방법 설정
- 평가지표 파악
- 체크리스트
- 프로젝트 목표 설정
- 분석 유형(회귀 / 분류(이진분류/다중분류) / 기타) 파악
- 평가지표 설정
- 문제 이해
- 데이터 획득 / 수집
- lv1 : 제공받는 데이터
- 연구용 데이터, 경진대회 데이터, 공공데이터, 사내 기업 데이터, 구매 데이터
- 정규화된 데이터일 가능성이 높음
- lv2 : OPEN API 활용
- 데이터를 요청을 통해 제공
- 전체 데이터는 아니지만 정제된 데이터
- lv3 : 정적 크롤링
- 접근이 용이
- lv4 : 동적 크롤링
- 검색 등 동적 제어가 필요한 페이지
- 자동화, 스케줄러
- windows : 작업 스케줄러
- linux : cron
- aws, azure: 클라우드 스케줄러
- apache airflow
- 데이터가 없으면 1단계(프로젝트 이해)부터 다시
- lv1 : 제공받는 데이터
- 데이터 준비
- 데이터의 품질 향상이 목표
- 데이터 정제, 통합, 변환
- 모델에 적합한 형태로 데이터를 변환
- 실제 데이터는 다양한 노이즈가 섞여 있고 형태도 일정하지 않음
- 이상값을 솎아주거나 형태를 일치시켜야 함
- 데이터의 품질 향상이 목표
- 탐색적 데이터 분석
- 의의
- 데이터를 면밀히 분석
- 머신러닝은 데이터를 다루는 기술이므로 데이터를 잘 알아야 다음 단계에서 가장 효과적인 모델을 최적화할 수 있음
- 데이터를 이해하는 데에 목적이 있음
- 통찰의 발견
- 통계적 분석, 시각적 분석
- 프로세스
- 데이터 구조 탐색
- 데이터의 구조를 훑어보거나 몇 가지 통계를 구함
- 데이터 시각화
- 그래프를 활용해 데이터 전반을 깊이 있게 살펴봄
- 어떤 피처가 중요한지, 피처를 어떻게 조합해서 새로운 피처를 만들지, 어떤 점을 주의해야할지 등의 통찰을 얻음
- 데이터 구조 탐색
- 체크리스트
- 데이터 구조 탐색
- 데이터 용도 파악
- 데이터 양 확인
- 피처의 이해
- 이름
- 의미
- 데이터 타입
- 결측값 개수
- 고윳값 개수 등
- 훈련 데이터와 테스트 데이터의 차이
- 종속변수 확인
- 데이터 시각화
- 효과적인 시각화를 위한 전처리
- 수치형 데이터 시각화
- 범주형 데이터 시각화
- 데이터 관계 시각화
- 피처 파악
- 추가할 피처
- 제거할 피처
- 피처별 인코딩 전략
- 이상치 파악
- 피처별 이상치 처리 방법
- 데이터 구조 탐색
- 시각화 종류
- 수치형 데이터 시각화
- 히스토그램, 커널밀도추정, 러그플롯
- 히스토그램
- histplot
- 수치형 데이터의 구간별 빈도수를 나타냄
- 히스토그램
- 히스토그램, 커널밀도추정, 러그플롯
- 범주형 데이터 시각화
- 막대 그래프, 포인트 플롯, 박스플롯, 바이올린플롯, 카운트플롯, 파이 그래프
- 막대 그래프
- barplot
- 범주형 데이터 값에 따라 수치형 데이터 값의 변화를 파악
- 포인트 플롯
- pointplot
- 막대 그래프와 동일한 정보를 제공
- 그래프를 점과 선으로 표현
- 한 화면에 여러 그래프를 그릴 때 유리
- 박스플롯
- boxplot
- 5가지 요약 수치를 제공
- 1사분위수(Q1)
- 2사분위수(Q2, 중앙값)
- 3사분위수(Q3)
- 사분위 범위 수(IQR) : Q3 - Q1
- 최댓값 : Q3 + (1.5 * IQR)
- 최솟값: Q1 - (1.5 * IQR)
- 이상치: 최댓값보다 큰 값과 최솟값보다 작은 값
- 각 범주별로 5가지 요약 수치를 쉽게 파악하고 싶다면 박스플롯이 유리
- 바이올린플롯
- violinplot
- 박스플롯과 커널밀도추정 함수 그래프를 합친 그래프
- 수치형 데이터의 전체적인 분포 양상을 알고 싶다면 바이올린플롯이 유리
- 카운트플롯
- countplot
- 범주형 데이터의 개수를 확인하는 그래프
- 범주형 피처나 범주형 타깃값의 분포가 어떤지 파악하는 용도
- 파이그래프
- pie
- 범주형 데이터별 비율을 파악
- 막대 그래프
- 막대 그래프, 포인트 플롯, 박스플롯, 바이올린플롯, 카운트플롯, 파이 그래프
- 데이터 관계 시각화
- 여러 데이터 사이의 관계를 파악하기 위한 시각화
- 히트맵, 산점도
- 히트맵
- heatmap
- 데이터 간 관계를 색상으로 표현
- 비교해야 할 데이터가 많을 때 주로 사용
- 산점도
- scatter
- 두 데이터의 관계를 점으로 표현
- 회귀선을 그리면 전반적인 상관관계 파악이 더 쉬움
- 히트맵
- 수치형 데이터 시각화
- 의의
- 베이스라인 모델
- 프로세스
- 모델 훈련 및 성능 검증
- 간단한 모델을 생성, 훈련하여 성능을 확인
- 기본적인 머신러닝 뼈대를 만들어두는 것
- 필요에 따라 간단한 피처 엔지니어링을 수행하기도 함
- 성능에 신경 쓰지 않고 우선 간단하게 만들어 훈련을 마침
- 훈련시 훈련 데이터를 활용
- 결과 예측
- 훈련된 모델을 활용해 결과를 예측
- 예측 시에는 테스트 데이터를 활용
- 베이스라인 모델의 성능을 확인하는 이유는 다음단계에서 성능 개선 후 비교하기 위함
- 모델 훈련 및 성능 검증
- 체크리스트
- 준비
- 데이터 준비(훈련/테스트)
- (필요시)기본적인 피처 엔지니어링
- 평가지표
- 모델 훈련
- 모델 생성
- 훈련
- 성능 검증
- 예측(검증 데이터 사용)
- 평가
- 예측
- 최종 예측(테스트 데이터 사용)
- 평가
- 준비
- 프로세스
- 성능 개선
- 프로세스
- 피처 엔지니어링(특성 공학)
- 모델 성능 개선의 첫 단계
- 이상치 제거, 결측값 처리, 데이터 인코딩, 피처 스케일링, 파생 변수 생성, 변수 선택 등을 수행
- 모든 피처가 종속변수 예측에 필요하지는 않음
- 불필요한 피처는 삭제하고 필요한 피처는 남겨두거나 변환해야 함
- 종속변수 예측에 도움되는 새로운 피처를 만들기도 함
- 주어진 피처를 결합하거나 변형
- 피처 엔지니어링은 모델 성능 향상에 큰 영향을 주는 작업
- 일반적으로 탐색적 데이터 분석 뒤에 수행하지만 그 전에 하거나 전후에 모두 하기도 함
- 하이퍼파라미터 튜닝
- 모델의 최적 하이퍼파라미터를 찾는 작업
- 모델마다 다양한 하이퍼파라미터와 다양한 값의 범위를 가짐
- 모델 성능을 가장 좋게 만드는 하이퍼파라미터 값을 탐색
- 모든 경우의 수를 따지는 것은 현실적으로 불가능하기 때문에 가능한 범위 내에서 최선의 값을 찾아야 함
- 그리드서치, 랜덤서치, 베이지안 최적화 등을 수행
- 성능 검증
- 훈련된 모델의 일반화 성능을 평가
- 주로 훈련 데이터와 검증 데이터를 나눈 다음 훈련 데이터로 훈련하고 검증 데이터로 성능을 평가
- 성능을 평가해 훈련이 제대로 됐는지 파악
- 성능이 좋지 않다면 이전 단계부터 다시 수행(문제 이해, 탐색적 데이터 분석, 피처 엔지니어링 등)
- 교차 검증 기법을 이용하기도 함
- 교차 검증 : 훈련 데이터를 여러 그룹으로 나누어 일부는 훈련에 활용하고 일부는 검증 시 사용해서 모델 성능을 측정
- 결과 예측
- 성능이 개선된 모델을 활용해 최종 성능 평가
- 피처 엔지니어링(특성 공학)
- 체크 리스트
- 피처 엔지니어링
- 이상치 제거
- 스케일링
- 결측값 처리
- 데이터 인코딩
- 타입 변경
- 파생 변수 생성
- 필요 없는 변수 제거
- 하이퍼파라미터 튜닝
- 하이퍼파라미터 종류와 의미 파악
- 선별
- 최적화할 하이퍼파라미터
- 값을 고정할 하이퍼파라미터
- 값 범위 설정
- 최적화 기법
- 모델 생성 및 훈련(최적화)
- 성능 검증
- 성능 평가(검증 데이터 사용)
- 일반화 성능 평가(테스트 데이터 사용)
- 피처 엔지니어링
- 프로세스
728x90
'08_ML(Machine_Learning)' 카테고리의 다른 글
| 32_자전거 대여 수요 예측(1) (1) | 2025.04.17 |
|---|---|
| 31_피마인디언 당뇨병 예측 (0) | 2025.04.16 |
| scikit-learn algorithm cheat sheet(사이킷런 알고리즘 치트시트) (0) | 2025.04.14 |
| 29_군집분석_연습문제 (0) | 2025.04.14 |
| 28_주 성분 분석 (0) | 2025.04.14 |