의미 그대로 이상한 값, 튀는 값, 패턴을 벗어난 값으로 그 Feature를 가지는 대부분의 값들과는 동떨어진 값
Min/Max
값을 설정한 뒤 그 값으로 변경👉 박스플롯 : 수치형 데이터 타입일 경우, 이를 통해 이상치 값들을 확인할 수 있다.
박스플롯에서의 범위 기준
:"(1분위수 - IQR*1.5)" ~ "(3사분위수 + IQR*1.5)"
이 범위를 벗어난 값들이이상치
'1.5'
는 파라미터로 이상치들의 범위를 설정할 수 있다.
'IQR'
: Inter quartile range 1~3사분위수의 범위. ->Q3 - Q1
개별 값들이 이산적이고, 데이터가 가질 수 있는 값의 범주가 몇가지로 정해져 있는 데이터 타입
👉 인코딩 :
원본 형태를 다른 형태로 변환
, 규칙성이 있어야함.
인코딩을 한 내용을 다시 디코딩 (원래 상태로 변환)할 수 있어야 한다.
🚨 레이블 인코딩은 숫자 크기의 차이가 모델에 영향을 주지 않는
트리 계열 모델 (DecisionTree, RandomForest,...)
에 적용해야한다.
선형 계열 (Logistic Regressor, SVM,...)과 같은 숫자크기가 모델에 영향을 받는 모델들에는 사용하면 안된다.
🚨 인코딩할 때 항상 생각해야하는 것 :
여러Feature
들을 레이블 인코딩할 때, 레이블 인코딩은 한번에 실행하는 것이 어렵기 때문에 하나씩 해야한다. 반복문을 통해 해당 인코딩을 할 때, 인코딩하는 것만을 목적으로 생각해서는 안됩니다.
디코딩, 원본 형태로 다시 변환할 수 있는 것도 생각해야하 합니다.
인코딩만 생각하지말고 항상 디코딩을 하는 것도 생각해야한다.
🚨 레이블 인코딩은 1차원 형태의 리스트, 시리즈를 넣어야하고,
원핫 인코딩은 2차원 배열, 데이터프레임을 넣어야 한다.
숫자 데이터 타입, 보통 중복된 값이 없거나 적고 값으로 올수 있는 대상이 정해져 있지 않은 값
. 이산형과 연속형 변수로 구성된다.
데이터의 속성인 각 feature
들간의 값의 척도(Scale)를 같은 기준으로 통일한다.
트리계열을 제외한 대부분의 머신러닝 알고리즘들이 feature간의 서로 다른 척도(Scale)에 영향을 받는다.
Scaling(정규화)
은 train set으로 학습(fitting) 한다. test set, validation set
그리고 모델이 예측할 새로운 데이터는 train set
으로 학습한 scaler
를 사용해 변환만 한다.test set과 validation set
은 모델이 앞으로 예측할 새로운 데이터에 대해 어느 정도 성능을 가지는지를 평가하는 용으로 쓰인다. 그런데 새로운 데이터들이 모델링할 때 사용할 데이터셋(sample)의 scale과 같다라고 보장할 수 없으므로 전체 sample 데이터셋을 학습 시킨 뒤 train/validation/test 으로 나누는 것은 모델의 정확한 성능평가를 할 수 없다.🚩🚩 연속형 데이터는 모델에 따라서
Feature Scaling
할 지, 말 지가 결정된다.
<-> 범주형 데이터의 경우, 모델에 따라서Label encoding
을 할지,One-hot encoding
을 할지가 결정된다. (어찌됐든, encoding 과정은 무조건 거친다.)
그러나 연속형 데이터의 경우, Feature Scaling을 안하는 경우도 있다는 것.
StandardScaler
사용MinMaxScaler
사용