이 영역을 누르면 첫 페이지로 이동
컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

페이지 맨 위로 올라가기

컴퓨터와 수학, 몽상 조금

컴퓨터공학, 딥러닝, 수학 등을 다룹니다.

2. 데이터 실수화 (Data Vectorization)

  • 2020.09.11 17:10
  • 학부 수업/머신러닝
반응형
이 글의 실습 코드는 제 깃허브에서 보실 수 있습니다.

데이터 실수화

범주형 데이터의 실수화

$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

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 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
다른 글 더 둘러보기

정보

컴퓨터와 수학, 몽상 조금 블로그의 첫 페이지로 이동

컴퓨터와 수학, 몽상 조금

  • 컴퓨터와 수학, 몽상 조금의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (276)
    • Tech Trend (3)
    • Deep Learning (77)
      • 공부 노트 (21)
      • 논문 리뷰 (44)
      • 논문 스키밍 (1)
      • 영상처리 (11)
    • Engineering (3)
      • Tips (2)
      • Experiences (1)
    • Blog (42)
      • 회고 & 계획 (16)
      • 내 이야기 (8)
      • 리뷰 (3)
      • 군대에 간 공돌이 (9)
      • ML엔지니어 취업 도전기 (1)
      • 여행 (4)
    • 학부 수업 (141)
      • 머신러닝 (16)
      • C프로그래밍 (8)
      • 자료구조 (11)
      • 알고리즘 (17)
      • 디지털시스템 (25)
      • 컴퓨터구조 (11)
      • 확률과 통계 (21)
      • 선형대수학 (14)
      • 이산수학 (18)
      • 데이터시각화 (0)
    • 강의 (9)
      • 딥러닝 기초 (7)
      • Python (2)

공지사항

인기 글

정보

백지오의 컴퓨터와 수학, 몽상 조금

컴퓨터와 수학, 몽상 조금

백지오

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
반응형

나의 외부 링크

  • profile
  • github
  • linkedin

방문자

  • 전체 방문자
  • 오늘
  • 어제
Powered by Tistory / Kakao. © 백지오. Designed by Fraccino.

티스토리툴바