Data Science
-
[Deep Learning] NLP - 불용어 ( Stop Words ) 처리Data Science/Machine Learning & Deep Learning 2021. 4. 15. 00:12
어떠한 데이터를 토큰화한 후 문서에 많이 사용된 단어를 보면 'I', 'and', 'of' 등의 텍스트 내에서 큰 의미를 가지지 않는 것들을 볼 수 있습니다. 이는 그다지 텍스트의 내용을 이해하는데 도움이 되지 않는 것들로 불용어(Stop words) 라고 합니다. 대부분의 NLP 라이브러리는 불용어 사전을 내장하고 있습니다. spacy의 불용어 사전을 보겠습니다. import spacy # load the small english model nlp = spacy.load("en_core_web_sm") print(nlp.Defaults.stop_words) 먼저 데이터를 불러와 불용어를 제거하지 않고 토큰화를 해보았습니다. import spacy from spacy.tokenizer import Tok..
-
[Deep Learning] NLP - 텍스트 토큰화 ( Tokenization )Data Science/Machine Learning & Deep Learning 2021. 4. 13. 22:44
토큰(Token)은 보통 자연어 처리에서 최소단위로 사용되는데 단어, 형태소 등의 형태가 될 수 있습니다. 문서나 문장 등을 자연어 처리에 사용하기 위해 텍스트를 토큰으로 바꿔주는 토큰화(Tokenization)를 해야하는데, 토큰화를 올바르게 하기 위해서 아래와 같은 조건을 충족하는 것이 좋습니다. 반복 가능한 데이터 구조(list, generator 등)에 저장 가능하면 대문자 또는 소문자로 통일 가능하면 영문자, 숫자가 아닌 문자들을 제거해야함 - ex) 문장부호, 공백 등 NLP 라이브러리를 사용하기 앞서 파이썬을 이용하여 토큰화를 위한 함수를 만들어 보겠습니다. import re # 정규식 # []: [] 사이 문자를 매치, ^: not regex = r"[^a-zA-Z0-9 ]" # 치환할 문..
-
[Deep Learning] 손실함수(Loss Function)Data Science/Machine Learning & Deep Learning 2021. 4. 13. 00:15
신경망의 성능을 측정하기 위해서는 손실 함수를 계산해야 합니다. 출력층에서 나온 예측 값을 실제 타겟 값과 비교하여 그 차이를 계산하는 함수가 손실함수이며, 이 때 출력값과 실제 타겟 값의 차이가 크면 손실함수의 값이 커지며, 차이가 적다면 손실함수의 값도 작아집니다. 모델은 이러한 손실 함수의 값이 작아지는 방향으로 가중치를 업데이트 하게 됩니다. 다음 손실함수에 대해서 알아보겠습니다. MeanSquaredError BinaryCrossentropy CategoricalCrossentropy SparseCategoricalCrossentropy MeanSquareError - regression 손실 함수 - 연속형 변수의 예측 문제시 사용 - 예측값과 ..
-
[Deep Learning] 역전파 ( Back Propagation )Data Science/Machine Learning & Deep Learning 2021. 4. 11. 01:16
역전파를 설명하기 위한 신경망입니다. 입력층(input layer)과 은닉층(hidden layer), 출력층(output layer)을 가지고 있으며, 2개의 입력(입력 변수 두가지)을 받고 은닉층과 출력층에는 각각 노드를 두개씩 가지고 있습니다. 위 그림으로 순전파와 역전파의 진행 방향을 간단하게 알 수 있습니다. 순전파가 입력층에서 값을 입력 받아 은닉층 출력층으로 입력값에 가중치를 곱한 값을 가중합하여 출력층에서 출력값을 내어놓는 것을 말한다면, 역전파는 반대로 출력층에서 입력층의 방향으로 진행되며 손실함수를 해당 가중치로 미분한 값을 이용하여 가중치를 업데이트 하는 것을 말합니다. 인공 신경망 모델에서 학습이란 위의 순전파, 역전파 과정을 반복하며 적은 오차를 내는 가중치를 찾아 업데이트 하는 ..
-
[Deep Learning] 인공신경망( Artificial Neural Networks )과 퍼셉트론( Perceptron )Data Science/Machine Learning & Deep Learning 2021. 4. 6. 00:36
신경망 기본 구조 노드 (뉴런) - Node 가중치 (엣지, 연결) - Weight 입력/ 은닉/ 출력층 - Layer 퍼셉트론 ( Perceptron ) 하나의 노드로 이루어진 신경망 다수의 입력값을 받아 하나의 출력값 내보냄 노드 ( Node ) 값을 입력 받아 일정값이 넘으면 넘겨주는 역할 노드맵에서 동그라미 부분 레이어는 n개의 노드(뉴런)으로 구성 신체 신경계에서 뉴런의 역할 가중치 ( Weight) 노드로 입력 받은 값에 곱해지는 수치 가중치가 곱해진 값들은 모두 더해져 활성화 함수에 따라 그 결과를 다음 층의 노드로 전달 신경망에서 가중치를 찾는 과정을 학습이라고 하며, 가중치는 예측에 사용됨 신경망 층 ( Layer ) 입력층 ( Input Layers ) 데이터셋으로부터 입력받는 층 입력..
-
[Data Engineering] Git & Github 기본 사용법Data Science/Data Engineering 2021. 4. 4. 17:10
Git은 버전 관리 시스템입니다. 깃을 통해서 작업을 기록을 남기고, 이전에 남겨놓은 상태로 다시 돌아갈 수도 있습니다. 특히 혼자 작업할 때 뿐만 아니라 다른 사람들과 협업을 할 때 매우 유용합니다. 간단하게 깃 사용법에 대해서 알아보겠습니다. 깃 버전 확인 git --version 위치한 디렉토리에 깃 시작( .git 파일이 만들어짐 ) git init 깃 제거 rm -rf .git 깃 상태 확인 - 어떤 파일을 추적하고 있는지, 수정된 파일은 어떤 것인지 등 깃의 현재 상황에 대해서 알려줌 git status 깃에 기록할 파일 지정 git add 파일 경로 # 해당 파일 add git add . # 모든 파일 add 깃 커밋 - 커밋 메세지 필수 git commit -m 'commit message..
-
[Data Engineering] Docker - Docker 기본 사용법Data Science/Data Engineering 2021. 3. 15. 23:25
Docker는 아래 사이트에서 쉽게 다운 받을 수 있습니다. www.docker.com/products/docker-desktop Docker Desktop for Mac and Windows | Docker Learn why Docker Desktop is the preferred choice for millions of developers building containerized applications. Download for Mac or Windows. www.docker.com 설치가 완료 되었다면 아래 코드를 통해 도커의 버전을 확인할 수 있으며, 이와 함께 설치여부 또한 확인할 수 있습니다. docker --version docker를 사용할 때는 Docker Docs 에서 option과 co..
-
[Python] 파이썬 자료형 - 리스트(List)Data Science/Python 2021. 3. 11. 22:22
Python 컬렉션 자료형 - 리스트(List) 파이썬 컬렉션 자료형은 특징에 따라 리스트(List), 튜플(Tuple), 딕셔너리(Dictionary)로 구분할 수 있습니다. 여기서 컬렉션 자료형은, 만약 문자열이나 숫자형이 a = 12, b = 'apple' 등과 같이 하나의 값을 가진다고 한다면 c = [1, 3, 5, 7, 9]와 같이 여러 개의 값을 저장할 수 있는 자료형을 컬렉션 자료형이라 말합니다. 이번에는 컬렉션 자료형 중 가장 많이 쓰이는 리스트에 대해서 알아보겠습니다. 먼저 리스트는 [ ]로 표시할 수 있으며 , 로 구분해줍니다. a = [] b = [1, 2, 3, 4, 5] c = ['apple', 'orange', 'lemon', 'banana'] d = [1, 2, 'apple'..