데이터 전처리 과정으로
위의 데이터 처럼 학습 시킬 데이터에 문자가 들어오게 되면
컴퓨터는 문자를 인식하지 못하기 때문에 카테고리로 판단되는 데이터는, 숫자로 바꿔줄 수 있다.
말그대로 문자열을 ABC 순서대로 라벨링을 해주는 작업을 말한다.
from sklearn.preprocessing import LabelEncoder
label_X = LabelEncoder()
X['Country']=label_X.fit_transform(X['Country'])
Country 부분이 0, 1, 2로 라벨링이 되어 있는 모습을 볼수 있다.
onehot encoding은 0과 1로 문자열의 컬럼에 표시하는 방식이다.
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
# '설명' '적용할 함수' '컬럼'
ct = ColumnTransformer([('one_hot_encoder', OneHotEncoder(),[0])],remainder ='passthrough')
# remainder 특수한 경우 drop할지 아니면 원래상태로 놔둘지 결정
X = ct.fit_transform(X)
3개의 컬럼이 5개로 늘어나고, 앞의 3개의 컬럼이 One-Hot인코딩된 컬럼이다.
원핫 인코딩은 데이터의 양을 증가시켜 저장공간을 비효율적으로 사용하나
다음 기법들로 다차원 공간에 유사도를 표현할 수 있다.
[머신러닝]Logistic Regression 구매여부 확인 (0) | 2021.05.17 |
---|---|
[머신러닝]Logistic Regression (0) | 2021.05.17 |
[머신러닝]Multiple Linear Regression (0) | 2021.05.17 |
[머신러닝] sklearn으로 쉬운 Feature scaling 피처 스케일링 (0) | 2021.05.06 |
[머신러닝]Linear Regression 연봉예측 (0) | 2021.05.06 |