Python을 통해서 데이터 전처리를 하는 과정에 대한 기초적인 내용을 정리하는 글
목차
데이터 전처리
데이터 전처리는 데이터 분석과 모델링에서 가장 많은 시간과 노력이 소요되는 부분으로
데이터의 값이나 형태를 변환하여 분석에 적합한 형태로 만드는 것을 의미
- 결측치/중복치 처리
- 데이터 변형 및 치환
- 범주형 데이터 처리
문자열 시계열 데이터는 자료형에 알맞은 처리가 필요하기 때문에 이 내용이 중요함!
1. 데이터 변형 및 치환
1. 1. 함수를 사용한 데이터 변환
- map, lambda를 사용하여 원하는 형태로 변환할 수 있음.
- lower() 메소드를 활용하여 문자열 데이터를 소문자로 변환하는지
- lambda를 활용하여 숫자 데이터를 전부 두배로 증가하던지
1.2. 값 치환하기
- replace() 메소드를 사용하면 좀 더 간단하고 유연하게 값을 치환할 수 있음
- 데이터프레임 내 전체 내 데이터에 대해서도 replace를 수행할 수 있음
◆ 특이값 처리하기
- 예를 들어 특정 컬럼 내 2보다 크거나 -2보다 작은 데이터는 특이값으로 지정
- 2보다 큰 데이터를 2로 변환하고 -2보다 작은 데이터를 -2로 변환하여 데이터에 있는 특이값을 처리할 수 있음.
2. 데이터 샘플링
데이터를 일부 정리해서 최적의 입력 데이터로 만드는 과정
- permutation을 활용하여 인덱스의 순서를 셔플링
- 전체 데이터를 뒤섞인 인덱스에 맞게 섞어줌
- sample()
- n을 사용하면 전체 데이터에서 정해진 개수만큼 랜덤하게 선택
- frac을 사용하면 전체 데이터의 비율만큼 랜덤하게 선택
- replcae = True로 데이터를 복원 추출
- 데이터 전체 개수보다 더 많은 데이터를 샘플링할 수도 있음
3. 연속형 데이터 범주화
3.1. pandas cut 메소드
- cut 메소드를 활용해 연속형 데이터를 구간으로 나눌 수 있음.
- 나눠진 구간은 범주형 데이터로 변환됨
ex.
- [0,20,40,60,80,100]이라는 데이터를 구간을 나눠서 카테고리형 데이터로 변환하는 과정임.
- 저렇게 나눠진 구간에 대해 각 그룹의 이름을 지정해줄 수도 있음.
3.2. 균등한 범위로 나누기
ⓐ.
- cut으로 구간을 나눌 때 그룹의 경계값 대신 그룹의 개수를 넘겨줄 수 있음
- 최소값과 최대값을 기준으로 균등한 길이의 구간을 계산해서 균등한 범위로 나눌 수 있음.
- 나눠진 구간에 대해서 히스토그램을 그릴 수 있음
ⓑ.
- qcut 메소드를 활용하면 각 구간별로 동일한 데이터 개수를 가질 수도 있음.
- 각 구간의 길이는 데이터 개수에 따라 모두 달라짐
4. 더미 변수 사용하기
- 더미 변수 : 범주형 변수를 처리할 때 사용하는 기법 중 하나로 머신러닝 모델이 범주형 변수를 처리하기 어려워서 이를 이진 변수로 변환하여 사용한다고 이해
4.1. 범주형 데이터 변환
- 머신러닝 모델을 위한 범주형 데이터의 변환 방법
- one-hot encoding
- multi-hot encoding
→ k개의 값을 0또는 1 값을 가지는 k개 차원의 벡터로 변환해서 인코딩된다고 이해.
- one-hot encoding
- get_dummies 메소드를 사용하여 범주형 변수를 더미 변수로 변환할 수 있음.
- multi-hot encoding
- 2개 이상의 값을 가지는 데이터를 가지고 있을 수 있음.
- 먼저 0으로 이루어진 더미 데이터프레임 생성
- 반복문으로 각 데이터마다 column에 해당하면 1로 채워넣어서 만들수 있음.
마무리
여러 데이터를 다뤄보면서 실습해보는 것만이 살 길!
'데이터' 카테고리의 다른 글
[데이터 모델링 및 평가] 의사결정 나무(Decision Tree) 내용 정리 (0) | 2023.04.03 |
---|---|
[데이터 모델링 및 평가] 분류 모델 - KNN, SVM 내용 정리 (0) | 2023.04.03 |
[데이터 모델링 및 평가] 정규화 선형 모델 정리 (0) | 2023.04.03 |
[데이터 전처리] [Python] 데이터 처리 기초 내용 정리 (문자열, 시계) (0) | 2023.04.01 |
[데이터 전처리] Python을 통한 데이터 전처리 기초 내용 정리 (누락 데이터 처리, 중복 데이터 처리, 판다스 자료형) (0) | 2023.03.31 |
댓글