일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스
- Gem
- Baekjoon
- regression
- CS
- C++
- SECS/GEM
- SWEA
- SECS
- c
- 자바
- 파이썬
- 회귀
- Computer Science
- programmers
- 스포티파이
- 비트겟
- spotify
- MYSQL
- 회원가입
- 백준
- Spring JPA
- Spring
- spring boot
- modern c++
- java
- python
- SECS-II
- Spotify Api
- SW Expert Academy
Archives
- Today
- Total
비버놀로지
[회귀분석] Loss Function 본문
728x90
Loss Function
앞서 배운 선형 회귀분석 모델에서 Loss Function을 구하는 방법을 알아보겠습니다.
실습
loss() 함수를 작성해보세요. 이 함수는 다음 값을 계산합니다.
이때 N 은 데이터의 개수를 의미합니다.
주어진 데이터는 다음과 같습니다.
import elice_utils
import matplotlib as mpl
mpl.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
eu = elice_utils.EliceUtils()
def loss(x, y, beta_0, beta_1):
N = len(x)
'''
x, y, beta_0, beta_1 을 이용해 loss값을 계산한 뒤 리턴합니다.
'''
x= np.array(x)
y=np.array(y)
total_loss = np.sum((y - (beta_0 * x + beta_1)) ** 2)
return total_loss
X = [8.70153760, 3.90825773, 1.89362433, 3.28730045, 7.39333004, 2.98984649, 2.25757240, 9.84450732, 9.94589513, 5.48321616]
Y = [5.64413093, 3.75876583, 3.87233310, 4.40990425, 6.43845020, 4.02827829, 2.26105955, 7.15768995, 6.29097441, 5.19692852]
beta_0 = 1 # 기울기
beta_1 = 0.5 # 절편
print("Loss: %f" % loss(X, Y, beta_0, beta_1))
plt.scatter(X, Y) # (x, y) 점을 그립니다.
plt.plot([0, 10], [beta_1, 10 * beta_0 + beta_1], c='r') # y = beta_0 * x + beta_1 에 해당하는 선을 그립니다.
plt.xlim(0, 10) # 그래프의 X축을 설정합니다.
plt.ylim(0, 10) # 그래프의 Y축을 설정합니다.
plt.savefig("test.png") # 저장 후 엘리스에 이미지를 표시합니다.
eu.send_image("test.png")
728x90
'인공지능 머신러닝' 카테고리의 다른 글
[회귀분석] 다중 회귀 분석 (0) | 2022.11.03 |
---|---|
[회귀분석] Scikit-learn을 이용한 회귀분석 (0) | 2022.11.03 |
[회귀분석] 기울기와 절편 (0) | 2022.11.03 |
[선형대수학 Numpy] 벡터 연산으로 그림 그리기 (0) | 2022.11.03 |
[선형대수학 Numpy] Numpy 논리연산자 (0) | 2022.11.03 |
Comments