데이터: 데이터 타입 및 변환
ㅁ 데이터 타입 및 변환
1. np.ceil()
ㅇ 정의:
– NumPy에서 제공하는 올림 함수로, 소수점 이하 값을 올려서 가장 가까운 정수로 변환한다.
ㅇ 특징:
– 반환값은 float 타입을 유지한다.
– 음수 값도 올림 규칙에 따라 처리된다.
ㅇ 적합한 경우:
– 계산 결과를 초과하지 않도록 상한 보정이 필요한 경우.
– 재고 수량, 페이지 수 계산 등에서 사용.
ㅇ 시험 함정:
– int로 변환하지 않으면 소수점이 .0 형태로 남는다.
– np.ceil()은 무조건 올림이며 반올림이 아님.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: np.ceil(3.2) → 4.0
– X: np.ceil(3.2) → 3
================
2. astype()
ㅇ 정의:
– NumPy 배열이나 pandas Series/DataFrame의 데이터 타입을 변환하는 메서드.
ㅇ 특징:
– 원본 데이터의 복사본을 반환한다.
– 문자열 → 숫자 변환 시 변환 불가능 값은 오류 발생.
ㅇ 적합한 경우:
– 모델 입력 형식 통일.
– 메모리 최적화를 위한 타입 변경.
ㅇ 시험 함정:
– inplace 옵션이 없으므로 원본을 유지하려면 재할당 필요.
– 잘못된 형식 변환 시 ValueError 발생.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: arr.astype(int)
– X: arr.astype_inplace(int)
================
3. np.floor()
ㅇ 정의:
– NumPy에서 제공하는 내림 함수로, 소수점 이하를 버리고 가장 가까운 낮은 정수로 변환한다.
ㅇ 특징:
– 반환값은 float 타입.
– 음수 값도 내림 규칙에 따라 처리.
ㅇ 적합한 경우:
– 초과치를 제거하고 하한 기준으로 계산할 때.
ㅇ 시험 함정:
– np.floor(-3.2) → -4.0 (절대값 기준이 아님)
– int() 변환과 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: np.floor(3.9) → 3.0
– X: np.floor(3.9) → 4
================
4. round()
ㅇ 정의:
– 파이썬 내장 함수 또는 NumPy 메서드로 소수점 반올림 수행.
ㅇ 특징:
– 기본은 소수점 첫째 자리에서 반올림.
– ties(0.5) 처리 방식은 Python 버전에 따라 Banker’s rounding 적용.
ㅇ 적합한 경우:
– 평균, 통계값 표현 시 소수점 자리 제한.
ㅇ 시험 함정:
– round(2.5) → 2 (Python3 기본)
– 기대값과 다를 수 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: round(3.14159, 2) → 3.14
– X: round(2.5) → 3 (Python3에서 틀림)
================
5. projection head
ㅇ 정의:
– 딥러닝에서 임베딩 벡터를 특정 차원으로 변환하여 학습 목표에 맞게 조정하는 추가 신경망 계층.
ㅇ 특징:
– 주로 contrastive learning, self-supervised learning에서 사용.
– MLP나 선형 변환으로 구성.
ㅇ 적합한 경우:
– 표현 학습 후 downstream task에 맞춘 벡터 변환.
ㅇ 시험 함정:
– feature extractor와 projection head를 혼동.
– 학습 시 projection head는 제거하고 feature만 사용하는 경우 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: SimCLR에서 encoder 뒤에 projection head 추가.
– X: projection head는 항상 추론 시 사용.
================
6. Tokenization
ㅇ 정의:
– 텍스트를 토큰 단위(단어, 서브워드, 문자 등)로 분할하는 전처리 과정.
ㅇ 특징:
– 규칙 기반, 통계 기반, 서브워드 기반(BPE, WordPiece) 등 다양한 방식 존재.
– NLP 모델 입력의 기본 단계.
ㅇ 적합한 경우:
– 자연어 처리 모델 학습 및 추론 전 필수.
ㅇ 시험 함정:
– Tokenization과 Lemmatization, Stemming 혼동.
– 공백 기준 단순 분할은 한계가 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: ‘I love AI’ → [‘I’, ‘love’, ‘AI’]
– X: Tokenization은 항상 단어 단위만 가능.
ㅁ 추가 학습 내용
np.ceil(), np.floor(), round() 함수는 모두 반환 타입이 float이다. int로 변환하려면 별도의 형 변환이 필요하다.
astype() 메서드는 pandas와 NumPy 모두에서 사용 가능하다. pandas에서는 category 타입으로 변환하여 메모리를 절감하는 사례가 시험에 출제될 수 있다.
projection head는 학습 시에는 사용되지만 추론 시에는 사용하지 않는 경우가 있다. SimCLR, BYOL 등 대표적인 self-supervised 학습 구조와 projection head의 연계가 중요하다.
Tokenization 기법으로는 BPE, WordPiece, SentencePiece가 있으며, 각각 OOV(Out-Of-Vocabulary) 처리 방식이 다르다. subword 단위 토큰화는 OOV 문제를 완화할 수 있으나 토큰 수 증가나 의미 단위 분리 문제 등의 단점이 있다.