2. 데이터 실수화 (Data Vectorization)
반응형
이 글의 실습 코드는 제 깃허브에서 보실 수 있습니다.
데이터 실수화
범주형 데이터의 실수화
$n$개의 클래스로 구성된 범주형 데이터의 실수화는 one-hot encoding을 사용하여 할 수 있다.
id | City |
1 | Seoul |
2 | Tokyo |
3 | New York |
각 클래스에 대응하는 행을 만들어, 해당하는 행에 1 데이터를 담아준다.
id | City_Seoul | City_Tokyo | City_NewYork |
1 | 1 | 0 | 0 |
2 | 0 | 1 | 0 |
3 | 0 | 0 | 1 |
Scikit-learn의 DictVectorizer 클래스
사이킷런 라이브러리의 DictVectorizer 클래스를 활용하여 범주형 데이터를 실수화할 수 있다.
from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer(sparse=False)
vec.fit_transform(x) # x를 one-hot encoding
DictVectorizer의 sparse를 True로 설정하면 CSR 표현식으로 데이터가 압축되어 더 적은 메모리로 저장할 수 있지만, 변환된 데이터를 확인할 수 없다.
텍스트 자료형의 실수화
텍스트 자료형도 범주형 자료와 비슷하게 실수화할 수 있다. 아래는 빈도를 이용해 문장을 실수화 한 예시이다.
떴다 떴다 비행기 날아라 날아라
떴다 | 비행기 | 날아라 | |
빈도 | 2 | 1 | 2 |
그러나, 등장 빈도가 항상 단어의 중요도와 비례하는 것은 아니므로, TF-IDF(Term Frequency Inverse Document Frequency) 기법을 활용해야 한다.
TF-IDF 기법은 자주 등장하지만 분석에 의미를 갖지 못하는 단어(a, the 등)의 중요도를 낮추는 기법이다.
CountVectorizer 클래스
사이킷런을 활용하여 빈도 기반 실수화를 할 수 있다.
from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer() # Sparse=True
t = vec.fit_transform(text).toarray() # toarray() 함수로 sparse 해제
# 판다스로 출력
import pandas as pd
tl = pd.DataFrame(t, columns=vec.get_feature_names())
tl
TfidfVectorizer 클래스
사이킷런을 활용한 TF-IDF 실수화. 빈도가 낮을 수록 높은 가중치를 할당한다.
from sklearn.feature_extraction.text import TfidfVectorizer
tfid = TfidfVectorizer()
x = tfid.fit_transform(text).toarray()
반응형
'학부 수업 > 머신러닝' 카테고리의 다른 글
5. 선형 회귀 (Linear Regression) (0) | 2020.10.21 |
---|---|
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall) (0) | 2020.09.23 |
4. K-최근접 이웃 알고리즘 (K-Nearest Neighbor) (0) | 2020.09.23 |
3. 데이터 변환, 정제, 통합, 균형 (Data Transformation, Cleaning, Integration and Balancing) (0) | 2020.09.13 |
1. 데이터 전처리 (Data Pre-Processing) (0) | 2020.09.11 |
댓글
이 글 공유하기
다른 글
-
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall)
4.5. 머신러닝의 정확도, 정밀도, 재현율 (Accuracy, Precision, Recall)
2020.09.23 -
4. K-최근접 이웃 알고리즘 (K-Nearest Neighbor)
4. K-최근접 이웃 알고리즘 (K-Nearest Neighbor)
2020.09.23 -
3. 데이터 변환, 정제, 통합, 균형 (Data Transformation, Cleaning, Integration and Balancing)
3. 데이터 변환, 정제, 통합, 균형 (Data Transformation, Cleaning, Integration and Balancing)
2020.09.13 -
1. 데이터 전처리 (Data Pre-Processing)
1. 데이터 전처리 (Data Pre-Processing)
2020.09.11