Python의 NumPy 배열에 대한 원-핫 인코딩
- NumPy 모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행
-
sklearn
모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행 -
pandas
모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행 -
keras
모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행
Python에는 기계 학습에 사용할 수있는 방대한 프레임 워크가 있습니다. 모델을 쉽게 훈련하고 테스트 할 수 있습니다. 그러나 범주 형 데이터의 경우 일부 알고리즘은 이러한 데이터 레이블로 작동 할 수 없으며 숫자 값이 필요합니다.
따라서 원-핫 인코딩은 알고리즘에서 사용하기 전에 데이터를 인코딩하는 데 많이 사용되는 기술입니다.
이 튜토리얼에서는 numpy 배열에서 원-핫 인코딩을 수행하는 방법을 배웁니다.
NumPy 모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행
이 방법에서는 인코딩 된 데이터를 포함하는 새 배열을 생성합니다. numpy.zeros()
함수를 사용하여 필요한 크기의 0 배열을 만듭니다. 그런 다음numpy.arange()
함수를 사용하여 해당 위치에서 0을 1로 대체합니다.
예를 들면
import numpy as np
a = np.array([1, 0, 3])
b = np.zeros((a.size, a.max() + 1))
b[np.arange(a.size), a] = 1
print(b)
출력:
[[0. 1. 0. 0.]
[1. 0. 0. 0.]
[0. 0. 0. 1.]]
eye()
함수를 사용하여 배열에서 원-핫 인코딩을 수행 할 수도 있습니다. 기본 대각선에 1이 있고 기본적으로 0이있는 2 차원을 반환합니다. 이 방법을 사용하고 아래와 같이 1이 될 위치를 지정할 수 있습니다.
import numpy as np
values = [1, 0, 3]
n_values = np.max(values) + 1
print(np.eye(n_values)[values])
출력:
[[0. 1. 0. 0.]
[1. 0. 0. 0.]
[0. 0. 0. 1.]]
sklearn
모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행
sklearn.preprocessing.LabelBinarizer
는이 인코딩을 효율적으로 수행 할 수있는 Python에서 사용할 수있는 클래스입니다. 다중 레이블을 숫자 형식으로 변환하여 이진화하는 데 사용됩니다. transform()
함수를 사용하여이 클래스의 객체를 사용하여 데이터를 변환합니다.
다음 코드는이를 설명합니다.
import sklearn.preprocessing
import numpy as np
a = np.array([1, 0, 3])
label_binarizer = sklearn.preprocessing.LabelBinarizer()
label_binarizer.fit(range(max(a) + 1))
b = label_binarizer.transform(a)
print(b)
출력:
[[0 1 0 0]
[1 0 0 0]
[0 0 0 1]]
pandas
모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행
머신 러닝 알고리즘 용 데이터 세트는 일반적으로pandas
데이터 프레임 형식입니다. 따라서pandas
모듈은 데이터 인코딩을 수행 할 수있는 장비를 갖추고 있습니다. get_dummies()
를 사용하여 범주 형 데이터 세트를 숫자 표시기로 변환하여 원-핫 인코딩을 수행 할 수 있습니다. 최종 결과는 DataFrame입니다.
예를 들면
import pandas as pd
import numpy as np
a = np.array([1, 0, 3])
b = pd.get_dummies(a)
print(b)
출력:
0 1 3
0 0 1 0
1 1 0 0
2 0 0 1
keras
모듈을 사용하여 Python의 NumPy 배열에서 원-핫 인코딩 수행
keras
모듈은 Python의 머신 러닝에 널리 사용됩니다. 이 모듈의to_categorical()
함수는 데이터에 대해 원-핫 인코딩을 수행 할 수 있습니다.
아래 코드 스 니펫은 방법을 보여줍니다.
from keras.utils.np_utils import to_categorical
import numpy as np
a = np.array([1, 0, 3])
b = to_categorical(a, num_classes=(len(a) + 1))
print(b)
출력:
[[0. 1. 0. 0.]
[1. 0. 0. 0.]
[0. 0. 0. 1.]]
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn