기계학습의 전처리와 탐색과정이 이루어지지 않으면 아무리 멋진 알고리즘을 이용해도 좋은 결과가 나올 수 없다.
데이터의 정제 또한 데이터 전처리의 한 과정으로, 데이터 정제를 통해서 이상치나 결측치가 없는 데이터를 받았다면,
데이터는 숫자 혹은 문자로 구성되어있을 것이다.
이때 수치데이터는 고려해야할 몇 가지가 존재한다.
데이터 변환
데이터를 처리하다보면 범주형데이터가 많음
범주형 데이터
ex) 1등급 2등급 3등급.. /10대 20대 30대...
옷사이즈 - 44 55 66 / S M L / BMI 지수 ⇒ 저체중 정상 비만
데이터를 하나씩 그대로 입력하는 것 or 어떤 특성을 가진 데이터끼리 그룹화하는 것이 의미가 있는지 고려해야함
데이터의 값이 클때 ⇒ 로그변환, 역수변환, 데이터 축소
범주형으로 변환
범주형으로 변환시 고려해야 할 점
10대 20대 30대 와같은 나이 범주의 경우 범주의 범위가 균일하다
but 등급산출과 같은 차등배정
대부분 범주형은 균등배정이지만 차등배정일때는 데이터를 나누는 근거가 있어야함
일반 정규화
수집 데이터의 범위가 서로 다른 경우, 같은 범위로 변환하여 사용하는 방법
단순하게 비례화 시킨 값으로 최대치와 최소치 고려
단위가 똑같은 데이터를 사용했을 때
EX)
시험 A (중간고사) 10점만점
시험 B (기말고사) 50점만점 이라고 했을 때,
갑의 시험점수는
A : 7점 ⇒ 7/10 = 0.7
B : 30점 ⇒ 30/50 = 0.6
을의 시험점수는
A: 8점 ⇒ 8/10 = 0.8
B: 20점 ⇒ 20/50 = 0.4
그대로 점수의 평균을 계산하는 것이 아니라,
만점을 기준으로 시험점수가 얼마나 비율을 차지하고 있는지 계산한다.
성적을 0(최소) ~ 1(최대)로 정규화
갑의 성적 평균 = 0.65
을의 성적 평균 = 0.6
z-score 정규화
평균과 표준편차를 보는 방법
데이터에서 평균과 표준편차 굉장히 다를경우
z-score정규화를 사용한다.
0을 기준으로 얼마나 분포를 이루고 있는지 변환됨
x : 해당 값
σ : 시그마, 표준 편차
μ : 뮤, 평균
로그 변환
숫자의 범위가 클경우 로그를 취해 간단한 값으로 만든다
- 수출액, 매출액 등 돈과 관련된 경우
역수변환
역수를 사용했을 때 오히려 선형적인 특성을 가지므로 의미를 해석하기 쉬워지는 경우
x의 역수는 x와 곱해서 1이 되는 수
EX)
자동차를 구매할 때
기름 1리터로 몇 m를 가는가? <<역수관계>> 1m를 가려면 몇리터가 필요한가?
데이터 탐색
데이터 탐색에 주로 사용되는 기법 : 단순 시각화
막대그래프로 빈도수를 확인하거나 히트맵을 통한 데이터 연관성을 파악
데이터의 공정성 fair 확인 → 어떤 데이터를 더 많이 가지고 있는지, (한쪽으로 치우쳐져 수집된 데이터) or
데이터가 골고루 분포하고 있는지 파악
데이터가 많을 때 좋은 경우는 딥러닝일뿐 딥러닝을 제외하고 나머지경우에서 많다고 좋은 것은 아니며 ,
좋은 quality 를 가진 데이터가 예측력을 높이고 무작위로 데이터가 많아지면 예측력을 낮추게 된다.
데이터 탐색없이 분석을 했을 경우, 결과를 신뢰하기 어려움
데이터를 선별하는 방법은?
Feature Selection [접근법]
전진 선택법 (forward selection)
- 상관 관계가 가장 큰 변수를 찾고, 다음으로 영향력있는 변수를 추가
- 중요 변수 순으로 하나씩 추가해 나가는 방식
- 변수를 추가해도 더 이상 성능 변화가 일어나지 않을 때 변수 선택을 멈춤
후진 제거법 (backward elimination)
- 모든 변수를 고려하여 예측하고 가장 불필요한 변수를 하나씩 제거해 나가는 방법
- 제거하면 성능이 나아지는 순서, 도움이 안되는 변수부터 제거
- 성능이 가장 좋을 때 멈춤
의미있는 변수는 추가할수록 점점 예측력이 좋아질 것임
아무리 변수를 추가해도 예측력이 좋아지지 않거나, 하락한다면 영향을 주는 변수가 아니다.
'Note > Machine learning' 카테고리의 다른 글
의사 결정 트리 (0) | 2021.08.08 |
---|---|
데이터 정제 (0) | 2021.08.01 |
모델 선택 (0) | 2021.08.01 |
기계학습 개요(2) (2) | 2021.07.18 |
기계학습 개요 (1) | 2021.07.18 |