[데이터 전처리] 데이터 전처리 방법 정리하기
데이터 전처리 복습을 하며 정리하였다.
- Cleaning input data
- Working with missing values
- Normalization and Standardization
- Handling Categorical data
- High-dimensional data and the curse of dimensionality
- Feature selection with filter and wrapper methods
- Feature reduction with transformation
Data Cleaning
Handling Missing Values
Finding and removing missing values
- .isnull().values.any() : True면 결측치 존재한다.
- .isnull().values.sum() : 6이면 6개의 결측치가 존재한다.
- .fillna(’example’) : 결측치를 example로 채우기
- .dropna() : 결측치를 포함하는 열 또는 행 제거하기
- option
- axis=0 or ‘index’: drop rows
- axis=1 or ‘columns’: drop columns
- option
-
.mean() : NaN을 mean으로 대체
- Imputor: 대체할 값을 예측하기 위해 사용한다.
- scikit-learn에서는 SimpleImputor()을 호출하여 사용할 수 있다.
- option
- missing_values : the form of the missing values (ex. nan, 0, or n/a)
- strategy: the impute method (the choices are mean, median, most frequent, and constant)
- fill_value : optional argument to pass the constant when choosing “strategy=constant”
Binning
- .cut(): 수치형을 범주형으로 묶을 수 있다.
- retbins=True: return the bins (mybin), default False
Feature scaling
-
Normalization: 모든 값들이 0과 1사이의 값을 갖도록 스케일한다.
-
Standardization: 모든 값이 평균이 0이고 분산이 1이 되도록 스케일한다.
Handling categorical data
- 범주형 데이터를 수치형 데이터로 바꿔준다.
Ordinal encoding
- 순서가 있는 범주형 데이터를 순서가 있는 수치형 데이터로 변환해준다.
One-hot encoding
범주형 데이터를 0, 1 이진 데이터로 변환한다.
- 단점: 데이터 안에 존재하지 않는 범주는 추정할 수 없다. ex) Shoe Size 11
Label encoding
- 범주형 데이터를 수치형 라벨로 변환한다.
Dimension reduction
차원 축소해야하는 이유
- 데이터의 차원이 높으면 차원의 저주가 발생
- 4차원 이상의 데이터는 시각화하기 어렵다.
차원 축소 방법
- Selection: 가장 좋은 특성을 선택하고 나머지를 제거한다.
- Transformation: 기존의 특성을 요약하여 새로운 특성을 만든다.
특성 선택 방법
- Filter: 중요한 평가기법을 정하고 중요한 것들만 필터링한다.
- Wrapper: 최적의 결과를 선택하기 전에 다양한 특성 조합들을 샘플링한다.
Feature Filtering
중요한 평가기법을 정하고 중요한 것들만 필터링한다.
- 일반적인 방법
- variance threshold
- threshold 값을 정해놓고 그 값 아래에 있는 특성들을 제거한다.
- scikit-learn에서는 VarianceThreshold()를 호출한다.
- Prefit with no threshold
- Analyze the variance
- Choose the threshold
- Refit with the chosen threshold
-
threshold=0.6으로 정하면 첫번째 열과 세번째 열이 선택된다.
- sorting by a correlation coefficient
- 가장 흔하게 사용되는 -1과 1사이의 수로 이루어진 행렬이다.
-
특정 변수 값에 해당하는 상관계수를 계산할 수 있다.
- variance threshold
Wrapper methods
다양한 특성 조합들을 샘플링한 후 최적의 결과를 내는 조합을 선택한다.
- 특성의 개수가 0개에서부터 특성을 하나씩 추가하여 성능 결과를 확인하고 이를 반복한다.
-
또는 가능한 모든 특성의 개수에서 특성을 하나씩 제외하여 성능 결과를 확인하고 이를 반복한다.
Transformation
가장 흔하게 사용하는 차원 축소 방법이다.
- Principal Component Analysis (PCA)
- 라벨 없이 데이터가 가장 넓게 퍼질 수 있도록 하는 특성을 생성한다.
- 분산을 가장 크게하는 벡터들을 eigenvectors 라고 부르며, 데이터의 주성분이다.
-
PCA를 적용하기 전과 후를 비교해보자
- Linear Discriminant Analysis (LDA)
- 라벨을 활용하여 라벨을 가장 잘 분류할 수 있는 방향으로 차원을 축소하는 방법이다.
-
LDA 적용 전과 후를 비교해보자
댓글남기기