더북(TheBook)

코드를 실행하면 앞에서 텐서로 변환한 범주형 데이터와 레이블에 대한 형태가 출력됩니다.

torch.Size([1728, 6])
torch.Size([6912])

워드 임베딩은 유사한 단어끼리 유사하게 인코딩되도록 표현하는 방법입니다. 또한, 높은 차원의 임베딩일수록 단어 간의 세부적인 관계를 잘 파악할 수 있습니다. 따라서 단일 숫자로 변환된 넘파이 배열을 N차원으로 변경하여 사용합니다.

배열을 N차원으로 변환하기 위해 먼저 모든 범주형 칼럼에 대한 임베딩 크기(벡터 차원)를 정의합니다. 임베딩 크기에 대한 정확한 규칙은 없지만, 칼럼의 고유 값 수를 2로 나누는 것을 많이 사용합니다. 예를 들어 price 칼럼은 네 개의 고유 값을 갖기 때문에 임베딩 크기는 4/2=2입니다.

다음 코드를 이용하여 (모든 범주형 칼럼의 고유 값 수, 차원의 크기) 형태로 배열을 만듭니다.

코드 2-7 범주형 칼럼을 N차원으로 변환

categorical_column_sizes = [len(dataset[column].cat.categories) for column in categorical_columns]
categorical_embedding_sizes = [(col_size, min(50, (col_size+1)//2)) for col_size in ccategorical_column_sizes]
print(categorical_embedding_sizes)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.