데이터 불러오기 데이터 분석을 위해 데이터를 불러오는 작업부터 해야 한다. 이때 불러오는 데이터를 '데이터 집합'이라고 한다. 그러면 데이터 집합을 불러오는 방법과 데이터를 간단히 살펴보자. 처음 불러올 데이터 집합은 갭마인더(Gapminder)이다. 판다스 라이브러리 임포트 import pandas as pd 갭마인더 데이터 집합 불러오기 df = pd.read_csv('../data/gapminder.tsv', sep='\t') read_csv() 함수를 이용하여 데이터를 불러오자. sep 속성값은 '\t'으로 구분되어 있음을 의미한다. 시리즈와 데이터프레임 판다스에서 사용되는 자료형은 시리즈(Series)와 데이터프레임(DataFrame)이 있다. 데이터프레임은 엑셀에서 볼 수 있는 시트(Sheet..
분류 전체보기
실습 데이터 이지스퍼블리싱에서 출간한 pandas 책을 참고하여 학습을 진행할 것이다. 이지스퍼블리싱 자료실과 깃허브를 참고하여 실습 데이터를 준비하자. 파이썬 패키지 관리자 - pip anaconda prompt를 실행시켜 필요한 패키지를 설치하자. pip list pip list로 판다스가 잘 설치되었는지 확인하자. 판다스가 잘 설치되어 있다. 다른 패키지를 설치하려면 'pip install'을 입력하고 원하는 패키지 이름을 적으면 된다. 예시로 beautifulsoup4를 제거하고 다시 설치해 보자. 제거 pip unistall beautifulsoup4 제거 여부를 묻는다 'y'를 입력하여 삭제하자. pip install beautifulsoup4
Anaconda 아나콘다라는 파이썬과 데이터 분석 라이브러리를 한데 모아 놓은 패키지를 설치하여 학습을 진행하자. 만약 파이썬이 설치되어 있다면 파이썬을 모두 제거한 뒤 아나콘다를 설치해야 한다. 아나콘다를 설치하면 자동으로 가장 잘 호환되는 파이썬도 함께 설치되기 때문이다. https://www.anaconda.com/download Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 위의 링크에서 다운로드하면 된다. 모두 기본 옵..
Nodemon 소스를 변경하면 서버를 재부팅을 해야 한다. 서버를 껐다가 켜는 작업을 해야 하기 때문에 매우 귀찮고 번거로워진다. Nodemon은 이런 작업을 자동으로 해주는 tool이다. 소스를 변경하면 자동으로 서버에 적용이 된다. Nodemon 설치 npm install nodemon --save-dev -dev는 local에서만 사용하겠다는 명령어이다. dependencies와 devDependencies가 구분이 되어 있는 것을 볼 수 있다. 또한, nodemon으로 실행할 수 있게 script를 하나 만들어 준다. "dev"라는 이름으로 nodemon으로 실행을 할 수 있게 한다.
LSTM 구조 기본 순환 신경망과 달리 LSTM 셀은 2개의 출력이 순환된다. 그중 하나만 다음 층으로 전달된다. 셀로 순환만 되는 출력을 셀 상태(C)라고 부른다. LSTM 셀에서는 이전 타임 스텝의 은닉 상태 H_p와 셀 상태 C_p를 사용해 어떤 계산을 수행하는지 살펴보자. s는 시그모이드 활성화 함수를 의미하고 t는 tanh 활성화 함수를 의미한다. x와 +는 각각 원소별 곱셈과 덧셈을 의미한다. 이전 타임 스텝의 은닉 상태 H_p와 입력 X가 가중치와 곱해져서 Z_f, Z_i, Z_j, Z_o를 만든다. 이 계산은 순환 신경망의 기본 셀에서 수행했던 것과 동일하다. Z에 대해서는 모두 동일한 방식으로 계산하지만 모두 다른 가중치를 사용한다. 먼저 Z_f는 시그모이드 활성화 함수를 적용한 다음 이..
SimpleRNN 텐서플로에서 가장 기본적인 순환층은 SimpleRNN 클래스이다. 다음과 같이 만들 수 있다. 필요한 클래스 임포트하기 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, SimpleRNN 모델 만들기 model = Sequential() model.add(SimpleRNN(32, input_shape=(100, 100))) model.add(Dense(1, activation='sigmoid')) model.summary() 입력은 원-핫 인코딩 된 100차원 벡터이고 셀 개수가 32개이므로 W_1x 행렬 요소의 개수는 100 x 32가 된다. W_1h 행렬의 요소 개수도 32..
순환 신경망 구현 순환 신경망을 구현여 텍스트를 분류하는 실습을 해보자. IMDB 데이터 세트는 인터넷 영화 데이터 베이스(Internet Movie Database)에서 수집한 영화 리뷰 데이터이다. 순환 신경망으로 이 리뷰들이 긍정적인지 부정적인지 판별해보자. 텐서플로에서 IMDB 데이터 세트 불러오기 import numpy as np from tensorflow.keras.datasets import imdb (x_train_all, y_train_all), (x_test, y_test) = imdb.load_data(skip_top=20, num_words=100) load_data() 함수를 이용하여 데이터를 불러온다. skip_top 매개변수에는 가장 많이 등장한 단어들 중 건너뛸 단어의 개수..
Body-parser req.body의 접근을 하면 undefined 에러를 마주치게 된다. 그 이유는 눈으로 보기에는 알아볼 수 있는 언어라고 생각하지만 사실 해석이 불가능하다고 판단되기 때문이다. 따라서 이를 인코딩 혹은 가공하는 작업이 필요한다. 이를 해주는 미들웨어가 body-parser이다. 설치법은 간다하다. 터미널에 다음 명령어를 입력하자. pip install body-parser --save Postman server에서 가공하거나 처리한 데이터를 다시 클라이언트에 보내줄 수 없기 때문에 테스트 용으로 사용하는 프로그램이다. 설치는 다음 링크에서 무료로 가능하다. https://www.postman.com/ Postman | The Collaboration Platform for API ..
순차 데이터 데이터 중에는 독립적이지 않고 샘플이 서로 연관되어 있는 경우가 있다. 예를 들면 날씨 정보는 샘플이 서로 연관되어 있다. 오후 3시의 온도를 알고 있다면 1시간 후의 온도를 비슷하게 예상할 수 있다. 즉, 온도를 매시간 측정하여 데이터 세트를 만들었다면 각 시간의 온도는 이전 시간의 온도와 깊은 연관이 있을 것이다. 이렇게 일정 시간 간격으로 배치된 데이터를 시계열(time series)데이터라고 부른다. 시계열 데이터를 포함하여 샘플에 순서가 있는 데이터를 일반적으로 순차 데이터(sequential data)라고 부른다. 대표적인 순차 데이터의 예는 텍스트이다. 글을 구성하는 글자와 단어들의 순서가 맞아야 의미가 제대로 전달되기 때문이다. 이때 모델에서 순차 데이터를 처리하는 각 단계를 ..
케라스 합성곱 신경망 만들기 케라스의 합성곱층은 Conv2D 클래스이다. 최대 풀링은 MaxPooling2D 클래스를 사용하고, 특성 맵을 일렬로 펼칠 때는 Flatten 클래스를 사용한다. from tensorflow.keras.layers import Conv2D, MaxPolling2D, Flatten, Dense 필요한 클래스를 임포트한다. 합성곱층 쌓기 합성곱층을 추가한다. Conv2D 클래스의 첫 번째 매개변수는 합성곱 커널의 개수이다. 두 번째 매개변수는 합성곱 커널의 크기로 높이와 너비를 튜플로 전달한다. 합성곱 커널로는 전형적으로 3 x 3 또는 5 x 5 크기를 많이 사용한다. activation 매개변수에 렐루 활성화 함수를 지정한다. 패딩은 세임 패딩을 사용하는데, tf.nn.con..