20240814 TIL
1. 예측모델링 프로세스
(1) 데이터 수집
- 데이터 분석가는 이미 존재하는 데이터를 SQL 혹은 Python으로 추출하고 리포팅 혹은 머신러닝을 통한 예측을 담당
- Data Source
- OLTP Database: OnLine Transaction Processing 은 온라인 뱅킹,쇼핑, 주문 입력 등 동시에 발생하는 다수의 트랜잭션(데이터베이스 작업의 단위) 처리 유형
- Enterprise Applications: 회사 내 데이터 (ex 고객 관계 데이터, 제품 마케팅 세일즈)
- Third - Party: Google Analytics와 같은 외부소스에서 수집되는 데이터
- Web/Log: 사용자의 로그데이터
- Data Lake: 원시 형태의 다양한 유형의 데이터를 저장
- Data Warehouse: 보다 구조화된 형태로 정제된 데이터를 저장
- Data Marts: 회사의 금융, 마케팅, 영업 부서와 같이 특정 조직의 목적을 위해 가공된 데이터
- BI/Analytics: business Intelligence(BI)는 의사결정에 사용될 데이터를 수집하고 분석하는 프로세스
(2) 탐색적 데이터 분석(EDA)
- 탐색적 데이터 분석은 데이터의 시각화, 기술통계 등의 방법을 통해 데이터를 이해하고 탐구하는 과정
- 데이터 분석에선느 반드시 필요한 과정
(3) 이상치(Outlier)
- 보통 관측된 데이터 범위에서 많이 벗어난 아주 작은 값 혹은 큰 값
ESD(Extreme Studentized Deviation) 이용한 이상치 발견
- 데이터가 정규분포를 따른다고 가정할 때, 평균에서 표준편차의 3배 이상 떨어진 값
- 데이터가 크게 비대칭이거나 샘플 크기가 작을 경우 제한
IQR(Inter Quantile Range)를 이용한 이상치 발견
- ESD와 동일하게 데이터가 비대칭적이거나 샘플사이즈가 작은 경우 제한
- Box plot : 데이터의 사분위 수를 포함하여 분포를 보여주는 시각화 그래프 // 사분위 수: 데이터를 순서에 따라 4등분 한 것
이상치는 사실 주관적인 값, 데이터를 삭제 할지 말지는 분석가가 결정할 몫!
--> 데이터 삭제 시 품질은 좋아질 수 있지만 정보 손실을 동반하기 때문에 이상치 처리에 주의
결측치(Missing Value)
- 존재하지 않는 데이터 // 이상치는 분포에 크게 어긋나는 데이터
결측치 처리 방법
-수치형 데이터
- 평균 값 대치: 대표적인 대치 방법
- 중앙값 대치: 데이터에 이상치가 많아 평균 값이 대표성이 없다면 중앙 값을 이용
-범주형 데이터
- 최빈값 대치
-사용함수:
- 간단한 삭제 & 대치
- df.dropna(axis = 0): 행 삭제
- df.dropna(axis = 1): 열 삭제
- Boolean Indexing
- df.fillna(value): 특정 값으로 대치(평균, 중앙, 최빈값)
- 알고리즘을 이용
- sklearn.impute.SimpleImputer:평균, 중앙, 최빈값으로 대치
- SimpleImputer.statistics_ : 대치한 값 확인 가능
- sklearn.impute.IterativeImputer: 다변량대치(회귀 대치)
- sklearn.impute.KNNImputer: KNN 알고리즘을 이용한 대치
- sklearn.impute.SimpleImputer:평균, 중앙, 최빈값으로 대치
범주형 데이터 전처리 - 인코딩(Encoding)
- 어떤 정보를 정해진 규칙에 따라 변환하는 것
-레이블 인코딩 : 문자열 범주형 값을 고유한 숫자로 할당
- 장점: 모델이 처리하기 쉬운 수치형으로 데이터 변환
- 단점: 실제로는 그렇지 않은데, 순서 가 크기에 의미가 부여되어 모델이 잘못 해석 할 수 있음
-원-핫 인코딩(One-Hot Encoding): 각 범주를 이진 형식으로 변환하는 기법
- 장점: 각 범주가 독립적으로 표현되어 순서가 중요도를 잘못 학습하는 것을 방지, 명목형 데이터에 권장
- 단점: 범주 개수가 많을 경우 차원이 크게 증가(차원의 저주), 모델의 복잡도를 증가, 과적합 유발
수치형 데이터 전처리 - 스케일링
-표준화 : 각 데이터에 평균을 빼고 표준편차로 나누어 평균을 0 표준편차를 1로 조정하는 방법
- 함수: sklearn.preprocessing.StandardScaler
- 장점: 이상치가 있거나 분포가 치우쳐져 있을때 유용, 모든 특성의 스케일 동일 맞춤, 많은 알고리즘에서 좋은 성능
- 단점: 데이터의 최소-최대 값이 정해지지 않음
-정규화 : 데이터를 0과 1사이 값으로 조정(최솟값 0, 최대값 1)
- 함수: sklearn.preprocessing.MinMaxScaler (표준화와 공통인 것은 제외)
- 장점: 모든 특성의 스케일을 동일하게 맞춤, 최대-최소 범위 명확
- 단점: 이상치에 영향 많이 받을 수 있음(이상치가 없을 때 유용)
-로버드 스케일링 : 중앙값과 IQR을 사용하여 스케일링
- 함수: sklearn.preprocessing.RobustScaler
- 장점: 이상치의 영향에 덜 민감
- 단점: 표준화와 정규화에 비해 덜 사용
데이터 분리
- 예측 혹은 분류를 하기 위해서 모형을 복잡도를 설정
- 모형이 지나치게 복잡할 때 : 과대 적합이 될 수 있음
- 모형이 지나치게 단순할 때: 과소 적합이 될 수 있음
- 과적합의 원인
- 모델의 복잡도(상기의 예시)
- 데이터 양이 충분하지 않음
- 학습 반복이 많음(딥러닝의 경우)
- 데이터 불균형(정상환자 - 암환자의 비율이 95: 5)
교차검증과 GridSearch
교차검증: 데이터 셋을 여러 개의 하위 집합으로 나누어 돌아가면서 검증 데이터로 사용하는 방법
K-Fold Validation : 데이터를 K개의 하위 집합으로 나누어 모델을 학습시키고 모델을 최적화 하는 방법
특징: 데이터가 부족할 경우 유용(반복 학습)
GridSearchV
하이퍼 파라미터 - 모델을 구성하는 입력 값 중 사람이 임의적으로 바꿀 수 있는 입력 값
이를 자동화 해주는 것이 GridSearch
2. 데이터 분석 프로세스 정리
<실습>
'✨Today I Learned' 카테고리의 다른 글
[태블로] 지표 특강 (9) | 2024.09.04 |
---|---|
머신러닝 심화: 회귀, 분류 모델링 심화 (0) | 2024.08.16 |
머신러닝 기초: 로지스틱 회귀 (1) | 2024.08.13 |
머신러닝 기초 : 회귀분석 기초, 심화 (0) | 2024.08.09 |
머신러닝 기초(회귀분석 - 선형회귀 이론까지) (0) | 2024.08.08 |