본문 바로가기

NumPy7

5. 로지스틱 회귀 구현하기(실습) 이전 시간에 로지스틱 회귀의 정의, 도함수를 유도하였다. 1. 복습 위 데이터는 평균 득점(avg_score), 리바운드 횟수(rebound), 어시스트 횟수(asist)에 따른 신인 농구 선수의 NBA 드래프트 여부 (1:성공, 0:실패) 이다. 이를 로지스틱 회귀로 예측할 것이다. 1) g(W, B) 연산은 아래와 같이 정의하였다. 2) σ(g(W, B)) 연산은 아래와 같이 정의하였다. 3) 순방향 연산 predict는 아래와 같이 최종 정의하였다. 4) 오차함수로 이진 교차 엔트로피 오차를 정의하였다. 5) ∂loss(W,B) / ∂W 는 아래와 같이 정의하였다. 6) ∂loss(W,B) / ∂B 는 아래와 같이 정의하였다. 2. 데이터 준비하기 첨부파일을 받아 임포트한다. 데이터를 분할하고 we.. 2022. 1. 4.
4. 로지스틱 회귀 구현하기(이론) 로지스틱 회귀(logistic regression)은 선형결합으로 이루어진 모델(Y = WX + B)을 이용하여 어떤 사건을 분류하거나 예측하는데 사용한다. 단순 이진 분류인 경우 1, 0으로 분류되는데 선형회귀를 사용한다면 안전성이나 예측성공이 떨어진다. 새로운 데이터가 추가되면 직선 그래프(선형회귀 모델)를 크게 수정해야 하기 때문이다. 정확하게 1이다, 0이다 구별하는 대신, 1일 확률이 몇 %이다 라고 하는 것이 더 수월하고 이를 기반으로 한 모델은 데이터 추가나 변화에 유연성을 가진다. 이러한 성질을 가진 시그모이드 함수(sigmoid)를 많이 사용한다. 1. 로지스틱 회귀 데이터 위 데이터는 평균 득점(avg_score), 리바운드 횟수(rebound), 어시스트 횟수(asist)에 따른 신인.. 2022. 1. 4.
3. 입력 특성이 2개인 선형회귀 구현(이론, 실습) 저번 시간에는 입력 특성이 1개인 단순 선형 회귀를 구현하였다. 이번에는 입력 특성이 2개 혹은 그 이상에도 적용 가능한 선형회귀 구현을 하고자 한다. 사실 매우 쉽다. 조금만 변형해주면 된다. 예를 들어 아래와 같은 입력값과 목표값이 있다. 위 식은 다음과 같은 선형 관계를 가진다. 즉, 위의 선형 관계는 Y = WX + B로 표현할 수 있고 식은 아래와 같다. forward, 오차함수, 도함수(∂L/∂W, ∂L/∂B) 구하는 방법은 변한 것이 없다. 아래 코드를 보면서 변경점만 몇 가지 확인해 보자. (이전 시간 코드 https://toyourlight.tistory.com/12 와 비교하면 더 좋다) import numpy as np import matplotlib.pyplot as plt from.. 2022. 1. 3.
2. 선형회귀 구현하기(실습) 저번시간에 X = [1, 2, 3], Y = [3, 5, 7] 의 입력(X)와 출력(Y)가 있을 때 이 둘의 관계를 Y = wx + b로 가정하고 w, b를 구하기 위해 도함수를 구하고 경사하강법을 이용한다고 하였다. 입력값 input X, 목표값 target Y, weight W, bias B를 Numpy로 표현하면 아래와 같다. (아래 learning_rate는 추후에 설명) import numpy as np np.random.seed(220102) input = np.array([[1.], [2.], [3.]]) target = np.array([[3.], [5.], [7.]]) W = np.random.randn(1, 1) # [[0.97213265]] correct value = 2 B = np.. 2022. 1. 3.