-
데이터 전처리와 최적화 - 데이터 실수화 (Data Vectorization)아가개발자/머신러닝 2020. 9. 15. 18:13
데이터 전처리 기법
- 데이터 실수화 (Data Vectorization)
- 데이터 정제 (Data Cleaning)
- 데이터 통합 (Data Integration)
- 데이터 축소 (Data Reduction)
- 데이터 변환 (Data Transformaion)
- 데이터 균형 (Data Balancing)
데이터 실수화(Data Vectorization)
- 범주형 자료, 텍스트 자료, 이미지 자료 등을 실수로 구성된 형태로 전환
- 범주형 자료의 실수화
<범주형 자료>
ID City 1 Seoul 2 Dubai 3 LA <One-hot encoding을 이용한 데이터 실수화>
id City1 City2 City3 1 1 0 0 2 0 1 0 3 0 0 1 Scikit-learn의 DictVectorizer함수를 이용하여 범주형 자료를 실수화
from sklearn.feature_extraction import DictVectorization vec = DictVectorizer(sparse=False) #희소 행렬(Sparse matrix의 경우 sparse = True를 사용하여 메모리를 줄일 수 있음) ==> CSR 표현식 vec.fit_transform(D) # D: data """ array([[ 0. , 0. , 1. , 10. ], [ 0. , 1. , 0. , 33.5], [ 1. , 0. , 0. , 20. ]]) """
- 텍스트 자료의 실수화
text = ['떴다 떴다 비행기 날아라 날아라', '높이 높이 날아라 우리 비행기', '내가 만든 비행기 날아라 날아라', '멀리 멀리 날아라 우리 비행기'] from sklearn.feature_extraction.text import Countvectorizer vec = Countvectorizer() vec.get_feature_names() ['날아라', '내가', '높이', '떴다', '만든', '멀리', '비행기', '우리'] vec = vec.fit_transform(text) vec.toarray() """ array([[2, 0, 0, 2, 0, 0, 1, 0], [1, 0, 2, 0, 0, 0, 1, 1], [2, 1, 0, 0, 1, 0, 1, 0], [1, 0, 0, 0, 0, 2, 1, 1]]) """ t = vec.fit_transform(text).toarray() import pandas as pd t1 = pd.DataFrame(t, columns = vec.get_feature_names()) t1 #pandas를 사용한 형태
※ 출현 횟수가 정보의 양과 비례하지 않기 때문에, 의미 없는 단어의 중요도를 낮추는 TF-IDF(Term Frequency Inverse Document Frequency) 기법을 사용
→ 높은 빈도에 낮은 가중치, 낮은 빈도에 높은 가중치
from sklearn.feature_extraction.text import TfidfVectorizer tfid = TfidfVectorizer() x2 = tfid.fit_transform(text).toarray() x3 = pd.DataFrame(x2, columns=tfid.get_feature_names()) x3
'아가개발자 > 머신러닝' 카테고리의 다른 글
로지스틱 회귀-Logistic regression (0) 2020.09.28 다중선형회귀 - Multiple Linear Regression (0) 2020.09.28 KNN classification - iris (0) 2020.09.18 K-최근접 이웃(KNN: K-Nearest Neighbors) (0) 2020.09.18 데이터 전처리와 최적화2 - 데이터 변환/데이터 정제/데이터 통합/데이터 불균형 (0) 2020.09.15