목록AI/파이썬(Python) (35)
기록하는삶

정말 많은 데이터 전처리의 방법 중에서, scaling과 관련된 몇 가지를 살펴보도록 한다. 1) 원핫인코딩(One-hot Encoding) 데이터를 다루다보면 때로 필요에 의해 카테고리형 변수를 숫자로 변환하기도 한다. 예를 들어, 강아지, 고양이, 돼지, 토끼 → [1, 2, 3, 4] 와 같은 식이다. 이를 Label-Encoding이라 한다. 다만 이렇게 레이블링 하는 경우, 회귀분석 등 숫자의 크기가 가중치 결정에 있어 역할을 하는 경우 왜곡이 일어날 수 있다. (구분하기 위함일 뿐, 숫자의 크기는 아무런 의미가 없는데 머신러닝 과정에서 의미가 발생될 수 있음) 이를 방지하기 위한 Encoding 방식이 원핫인코딩이다. 같은 예에서 다음과 같다. 강아지 → 1000 고양이 → 0100..

문자열 데이터를 다루다 보면, 괄호 안에 불필요하게 표기된 정보들을 삭제하고 싶을 때가 있다. 아래 코드는 re 모듈을 이용하여 특정 문자열에서 불필요한 괄호와 괄호 안의 정보들을 삭제할 수 있는 코드다. import re pattern = r'\([^)]*\)' x = '이건 (괄호 안의 불필요한 정보를) 삭제하는 코드다.' text = re.sub(pattern=pattern, repl='', string= x) text text.split() 입력받은 text에서 괄호와 괄호 안의 정보를 제거하며, .split()을 이용해 단어만 모아 리스트로 반환할 수도 있다. 이를 이해하기 위해서는 정규표현식의 일부를 이해해야한다. r'문자열' \, (), % 등 문자열에는 예약어로 특정 기능을 수행하는 문..

파이썬은 객체지향(OOP _ Object Oriented Programming) 언어이다. 객체 = 속성(상태, 특징)과 행위(행동, 동작, 기능)로 구성된 대상 > 속성: '변수'로 구현 > 행위: '함수'로 구현 즉, 객체란 특정 목적을 달성하기 위한 변수와 함수들의 묶음이다. ex) 아래 링크의 유튜브 강의에서는 class를 자기소개서에 빗대어 표현하였다. https://www.youtube.com/watch?v=uIcK7-YU8uA 파이썬에서 객체를 생성하는 방법인 Class에 대해 예시를 통해 살펴보자. 아래는 자전거의 정보(이름, wheel_size, color, model_code)를 통해 자전거를 등록하고, 등록된 자전거의 행위(move, turn, stop, auto_cruise) 등을 ..

CountVectorizer를 통해 자연어를 벡터화하는 경우 발생할 수 있는 문제점(의미 없이 자주 사용되는 단어의 가중치의 증가 등)을 해결하기 위한 방법 중 하나가 TfidfVectorizer다. TfidfVectorizer Tf, idf 두 가지를 먼저 이해해야 한다. 1) Tf(Term Frequency) 하나의 문서(문장)에서 특정 단어가 등장하는 횟수 2) Idf(Inverse Document Frequency) Df(Document Frequency)는 문서 빈도. 특정 단어가 몇 개의 문서(문장)에서 등장하는지를 수치화 한 것. 그것의 역수가 idf다. 보통 그냥 역수를 취하기 보다는 아래처럼 수식화한다. 역수 개념을 사용하는 이유는, 적은 문서(문장)에 등장할수록 큰 숫자가 되게하고 반대..

Bow(Bag of Words) 단어의 순서는 고려하지 않고, 출현 빈도만으로 텍스트를 수치화하는 방법 1) 각 단어에 고유한 정수 인덱스 부여(단어 사전) 2) 각 인덱스 위치에 해당 단어의 출현 빈도를 기록한 벡터 표현 아래와 같이 형태소 분석기 Okt를 이용, 직접 만들어 볼 수도 있다. from konlpy.tag import Okt import re # 형태소 분석기 Okt okt=Okt() token=re.sub("(\.)","","정부가 발표하는 물가상승률과 소비자가 느끼는 물가상승률은 다르다.") token=okt.morphs(token) word2index={} bow=[] for voca in token: if voca not in word2index.keys(): word2index[..