ML 알고리즘은 데이터에 기반하고 있기 때문에 어떤 데이터를 입력으로 가지느냐에 따라 결과도 크게 달라질 수 있다.

결손값, 즉 NaN, Null값은 허용되지 않는다. Null값은 고정된 다른 값으로 변환해야 한다. 피처 값 중 Null값이 얼마 되지 않는다면 피처의 평균값등으로 간단히 대체할 수 있다. 하지만 Null값이 대부분이라면 해당 피처는 드롭하는 것이 더 낫다.

사이킷런의 머신러닝 알고리즘은 문자열 값을 입력값으로 허용하지 않는다. 그래서 모든 문자열 값은 인코딩돼서 숫자 형으로 변환해야 한다. 문자열 피처는 일반적으로 카테고리형 피처와 텍스트형 피처를 의미한다.


1. 데이터 인코딩

머신러닝을 위한 대표적인 인코딩 방식은 레이블 인코딩원-핫 인코딩이 있다.

레이블 인코딩(Label encoding)

카테고리 피처를 코드형 숫자값으로 변환하는 것.

<aside> 💚 상품 데이터의 상품 구분이 TV, 냉장고, 전자레인지, 컴퓨터, 선풍기, 믹서 로 되어있다면 TV : 1, 냉장고 : 2, 전자레인지 : 3, 컴퓨터 : 4, 선풍기 : 5,믹서 : 6 와 같은 숫자형 값으로 변환하는 것.

</aside>

사이킷런의 레이블 인코딩(Label encoding)은 LabelEncoding 클래스로 구현한다. LabelEncoder를 객체로 생성한 후 fit()transform()을 호출해 레이블 인코딩을 수행.