예측 대상 변환

Beginner

This tutorial is from open-source community. Access the source code

소개

머신 러닝에서 모델 학습 전 예측 대상을 변환하는 것이 종종 필요합니다. 이에는 다중 클래스 레이블을 이진 표시 행렬로 변환하거나 숫자가 아닌 레이블을 숫자 레이블로 인코딩하는 작업이 포함될 수 있습니다.

이 실습에서는 scikit-learn 의 sklearn.preprocessing 모듈에서 제공하는 다양한 기술을 사용하여 예측 대상을 변환하는 방법을 살펴볼 것입니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 Jupyter Notebook을 연습에 사용할 수 있습니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

레이블 이진화

레이블 이진화는 다중 클래스 레이블을 이진 표시 행렬로 변환하는 과정입니다. LabelBinarizer 클래스를 사용하여 수행할 수 있습니다.

from sklearn import preprocessing

## LabelBinarizer 인스턴스 생성
lb = preprocessing.LabelBinarizer()

## 다중 클래스 레이블 목록으로 LabelBinarizer 를 학습
lb.fit([1, 2, 6, 4, 2])

## LabelBinarizer 가 학습한 클래스 가져오기
lb.classes_

## 다중 클래스 레이블 목록을 이진 표시 행렬로 변환
lb.transform([1, 6])

다중 레이블 이진화

다중 레이블 이진화는 레이블들의 집합 (컬렉션) 을 표시 형식으로 변환하는 과정입니다. MultiLabelBinarizer 클래스를 사용하여 이를 수행할 수 있습니다.

from sklearn.preprocessing import MultiLabelBinarizer

## 레이블들의 집합 (컬렉션) 목록 정의
y = [[2, 3, 4], [2], [0, 1, 3], [0, 1, 2, 3, 4], [0, 1, 2]]

## MultiLabelBinarizer 인스턴스를 생성하고, 목록에 fit_transform 적용
MultiLabelBinarizer().fit_transform(y)

레이블 인코딩

레이블 인코딩은 숫자가 아닌 레이블을 숫자 레이블로 변환하는 과정입니다. LabelEncoder 클래스를 사용하여 이를 수행할 수 있습니다.

from sklearn import preprocessing

## LabelEncoder 인스턴스 생성
le = preprocessing.LabelEncoder()

## 숫자가 아닌 레이블 목록으로 LabelEncoder 를 학습
le.fit(["paris", "paris", "tokyo", "amsterdam"])

## LabelEncoder 가 학습한 클래스 가져오기
list(le.classes_)

## 숫자가 아닌 레이블 목록을 숫자 레이블로 변환
le.transform(["tokyo", "tokyo", "paris"])

## 숫자 레이블을 다시 숫자가 아닌 레이블로 역변환
list(le.inverse_transform([2, 2, 1]))

요약

이 실습에서는 scikit-learn 의 sklearn.preprocessing 모듈에서 제공하는 다양한 기법을 사용하여 예측 대상 (target) 을 변환하는 방법을 배웠습니다. 이러한 기법에는 레이블 이진화, 다중 레이블 이진화, 그리고 레이블 인코딩이 포함됩니다.