오늘은 데이터 엔지니어링의 기술이 아닌 코드 리뷰에 관한 글을 리뷰해보고자 한다. 흔히 개발자는 혼자서 일한다고 생각하기 쉽지만 그렇지 않다. 여러 팀이 유기적으로 묶여있고 같은 팀 내에서도 배포와 유지보수를 꾸준히 해야 하기 때문에 단순히 코드만 잘 작성하는 것이 능사는 아니다. 토스페이먼츠는 결제의 다양한 맥랑을 다루는 회사로, 코드 변경과 배포가 신중하게 이루어져야 한다. 이를 위해 코드 리뷰를 진행하고 있는데, 피드백의 속도와 PR 코멘트로 이루어지는 대화의 양이 가장 중요한 조건이라고 한다. 이를 위해 Github Actions로 코드 리뷰 문화를 개선했다고 한다. 어떤 부분을 중요하게 생각하고 개선했는지 알아보자. 기술 블로그 출처 https://toss.tech/article/25431 Gi..
텐서플로우는 상수, 시퀀스, 난수, 변수 등을 텐서(Tensor)형으로 생성하는 연산을 제공합니다. 이러한 연산은 기존 Numpy와 유사하게 사용할 수 있습니다. 또한, 텐서플로우에는 다양한 자료형을 사용할 수 있습니다. 이를 이용하면 어떤 데이터든지 구조화된 형식으로 저장할 수 있습니다. 텐서플로우 자료형 tf.float32 : 32-bit float tf.float64 : 64-bit float tf.int8 : 8-bit integer tf.int16 : 16-bit integer tf.int32 : 32-bit integer tf.uint8 : 8-bit unsigned integer tf.string : String tf.bool : Boolean 이번 실습에서는 텐서플로우의 다양한 함수와 자료..
역전파(Back propagation) 역전파(Back propagation)는 다층 퍼셉트론 모델을 이루는 가중치들을 개선하기 위해 개발된 여러 알고리즘들 중 가장 유명하고 널리 쓰이는 방법입니다. 이번 실습에서는 역전파를 간단하게 실습해보기 위해, 퍼셉트론 한 개의 가중치들을 개선시키는 역전파를 구현해 보도록 합니다. 다음 그림은 이번 실습에서 사용되는 퍼셉트론을 나타냅니다. 입력은 x_1, x_2, x_3x1,x2,x3 세 개의 정수로 주어지고, 각각 w_1, w_2, w_3w1,w2,w3의 계수가 곱해져 sigmoid 함수를 통과할 값은 x_1w_1 + x_2w_2 + x_3w_3x1w1+x2w2+x3w3가 됩니다. 여기서 w_1, w_2, w_3w1,w2,w3가 바로 ..
앞선 실습에서는 가중치(Weight), Bias, Step Function을 이용하여 단층 퍼셉트론인 AND gate와 OR gate를 구현해보았다. 이번 실습에서는 가중치와 Bias 값을 조정해보며 동일한 단층 퍼셉트론 NAND gate와 NOR gate를 구현해보도록 하자. import numpy as np ''' 1. NAND_gate 함수를 완성하세요. Step01. 이전 실습을 참고하여 입력값 x1과 x2를 Numpy array 형식으로 정의한 후, x1과 x2에 각각 곱해줄 가중치도 Numpy array 형식으로 적절히 설정해주세요. Step02. NAND_gate를 만족하는 Bias 값을 적절히 설정해주세요. Step03. 가중치, 입력값, Bias를 이용하여 가중 신호의 총합을 구합니다. ..
로지스틱 회귀를 위한 사이킷런 함수/라이브러리 from sklearn.linear_model import LogisticRegression: 사이킷런 안에 구현되어 있는 로지스틱 회귀를 불러옵니다. LogisticRegression(): 로지스틱 회귀 모델을 정의합니다. [Model].fit(X, y): (X,y) 데이터 셋에 대해서 모델을 학습시킵니다. [Model].predict(X): X 데이터 바탕으로 예측되는 값을 반환 from data_plot import * # 경고메세지(버전이 낮다던가 다음 버전에서는 지워지는 경우 나타남)를 안 뜨게 해줌 import warnings warnings.filterwarnings(action='ignore') import numpy as np from skl..