4. 데이터 클리닝
목차
- Step 1. 결측값 처리
- Step 2. 정규화, 표준화
- Step 3. 범주형 자료 처리
오늘은 결측치가 존재하는 데이터를 이용하여 데이터클리닝 이라는 공부를 해볼 것이다. 직관적으로 데이터를 청소한다, 즉 결측치나 이상치를 처리하여 데이터를 분석하기 쉽게 만드는 것이다.
우선 결측치가 존재하는 데이터를 이용하기 위해 기존 iris data에 결측치가 존재하는 dataset을 이용할 것이다
1 |
|
1 |
|
Step 1. 결측값 처리
파이썬에서 결측값은 아래 세 가지로 표현된다.
- NA (Not Available) : 보정이 불가능하여 삭제해야 함
- NAN(Not A Number) : 보정이나 삭제 둘 다 가능
- NULL : 아직 정해지지 않은 값
그럼 위 결측값들은 어떻게 처리를 해야할까? 그 전에 우선 결측값들이 존재하는지 확인을 해야한다.
1 |
|
1 |
|
위 과정을 통해 결측값이 존재함을 확인했다. 그럼 이제 결측값을 어떻게 처리를 해볼까
1 |
|
1 |
|
그럼 어떤 수를 이용하여 대체해주면 좋을까? 보통은 연속형 변수의 경우 평균값을 이용한다. 결측값 생성이 가능한 numpy를 이용하여 예시를 들어보자.
1 |
|
그럼 위 개념을 이용하여 iris의 결측값 들을 각 변수의 평균으로 변경을 해주자
1 |
|
1 |
|
그렇담 나머지 열들도 평균값으로 대체해주자. 일일이 입력하기 번거로우니 for 문을 이용하자.
1 |
|
자 그럼 Species 를 제외한 모든 열은 결측치를 평균값으로 대체함을 확인했다. 그럼 species엔 결측치가 몇개가 존재할까?
1 |
|
3개가 존재함을 확인했다. 그러나 이는 특정종으로 대체하기엔 타당성이 존재하지 않기에, 결측값이 존재하는 행만 삭제할 것이다.
1 |
|
1 |
|
sklearn library를 사용하여 위 과정도 수행이 가능하다.
1 |
|
1 |
|
arrary 형태로 변경되었기에, dataframe으로 다시 변경을 해주자
1 |
|
1 |
|
그러나 교수님 말씀으론 library보단 실제로 코딩을 통해 하나하나 확인하는 것이 바람직하다고 한다.
Step 2. 정규화, 표준화
데이터 셋을 보면 변수마다 가지고 있는 구간이 모두 상이하며, 측정 단위도 다르기에 분석함에 어려움이 있다. 이럴 경우 사용하는 개념이 정규화와 표준화이다.
1. 정규화(Normalization)
정규화는 해당 구간을 0 ~ 1로 바꿔줌으로 범위를 통일 시켜주며 대표적 방식은 Min-Max Normalization 이다.
- x_new = ( x - min(x)) / ( max(x) - min(x))
1 |
|
1 |
|
자 그럼 모든 변수에 따른 정규화 열을 생성해보자. 이것도 마찬가지로 for문을 이용해보자.
1 |
|
1 |
|
마찬가지로 sklearn의 정규화 함수를 이용해 위 과정이 가능하다.
1 |
|
1 |
|
표준화(Standardization)
표준화는 해당 데이터가 평균으로 부터 얼마나 떨어져 있는지 나타낼 수 있으며, 이를 통해 데이터가 특정 범위 안에 머물도록 한다. 정규화와 달리 범위는 음수부터 양수까지 존재한다.
- (x - mean(x)) / std(x)
1 |
|
1 |
|
1 |
|
그럼 언제 정규화를 쓰고, 표준화를 써야하나?
- 정규화는 음수는 존재하지 않음.
- 표준화는 음수, 양수 모두 존재
- 그 뒤에 사용 알고리즘이 양수를 쓰는지, 음/양수 둘 다 쓰는지 보고 판단
Step 3. 범주형 자료 처리
컴퓨터는 자료를 처리할 경우, 모두 숫자 형태로 처리하기 때문에 string으로 되어있는 범주형 변수를 숫자로 변경하는 과정을 해보자.
우선 이번엔 사람의 나이, 키, 몸무게 등 신체 사이즈로 점프한 길이를 나타내는 데이터셋을 이용해보자.
1 |
|
1 |
|
현재 확실한 범주형 변수는 ‘Jersey Color’, ‘Jersey Size’가 존재하며, ‘Shoe Size’는 ordinal data로 생각할 수 있기에 연속형으로 판단하기 어렵다.
그럼 범주형 변수의 string 값을 숫자 형태로 변형해보자
1 |
|
1 |
|
마찬가지로 Jersey Color도 바꿔주면 된다.
1 |
|
1 |
|