
560
2
부
신경망과 딥러닝
(동일한 범주를 사용한다고 가정할 때 ) 동시에 한 개 이상의 범주형 특성을 인코딩하면
CategoryEncoding
클래스는 기본적으로
멀티-핫 인코딩
multi
-
hot
encoding
을 수행합니다. 즉, 입
력 특성에 있는 범주에 해당하는 위치마다 출력 텐서의 값이
1
이 됩니다. 예를 들면 다음과 같
습니다.
>>> two_age_categories = np.array([[1, 0], [2, 2], [2, 0]])
>>> onehot_layer(two_age_categories)
<tf.Tensor: shape=(3, 3), dtype=float32, numpy=
array([[1., 1., 0.],
[0., 0., 1.],
[1., 0., 1.]], dtype=float32)>
각 범주가 얼마나 많이 등장하는지 알고 싶다면
CategoryEncoding
층을 만들 때
output
_
mode
="
count
"
를 추가합니다. 이렇게 하면 출력 텐서에 각 범주의 등장 횟수가 포함되므로 이
전 예시에서 두 번째 행의 경우
[
0
.,
0
.,
2
.]
이 될 것입니다.
멀티-핫 인코딩과 카운트 인코딩은 범주를 활성화한 특성이 어떤 것인지 알 수 없기 때문에 정
보에 손실이 있다는 점을 유념하세요. 예를 들어
[
0
,
1
]
과
[
1
,
0
]
은 모두
[
1
., ...