반응형
회귀 알고리즘 평가 지표- RSS
이번 실습에서는 회귀 알고리즘을 위한 다양한 평가 지표 중 가장 기본적인 Loss Function인 RSS(단순 오차제곱합)을 직접 계산해보고, 결과를 확인해보겠습니다.
import matplotlib.pyplot as plt
import numpy as np
from elice_utils import EliceUtils
elice_utils = EliceUtils()
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 데이터 X와 y를 생성하고, 학습용 데이터와 테스트용 데이터로 분리하여 반환하는 함수입니다.
def load_data():
np.random.seed(0)
X = 5*np.random.rand(100,1)
y = 3*X + 5*np.random.rand(100,1)
train_X, test_X, train_y, test_y = train_test_split(X,y,test_size=0.3, random_state=0)
return train_X, train_y, test_X, test_y
# 회귀 모델을 불러오고, 불러온 모델을 학습용 데이터에 맞춰 학습시켜 반환하는 함수입니다.
def Linear_Regression(train_X, train_y):
lr = LinearRegression()
lr.fit(train_X,train_y)
return lr
"""
1. RSS(Residual Sum of Squares)를 계산하여
반환하는 함수를 완성합니다.
"""
def return_RSS(test_y, predicted):
RSS = 0
for i in range(len(test_y)) :
RSS += (test_y[i] - predicted[i])**2
return RSS
# 그래프로 시각화합니다.
def plotting_graph(test_X, test_y, predicted):
plt.scatter(test_X,test_y)
plt.plot(test_X, predicted, color='r')
plt.savefig("result.png")
elice_utils.send_image("result.png")
"""
3. 정의한 함수들을 이용하여 main() 함수를 완성합니다.
Step01. 생성한 데이터를
학습용 데이터와 테스트 데이터로
분리하여 반환하는 함수를 호출합니다.
Step02. 학습용 데이터를 바탕으로 학습한 선형 회귀
모델을 반환하는 함수를 호출합니다.
Step03. 학습된 모델을 바탕으로 계산된
테스트 데이터의 예측값을 predicted에
저장합니다.
Step04. 회귀 알고리즘을 평가하기 위한 RSS 값을 RSS에
저장합니다.
"""
def main():
train_X, train_y, test_X, test_y = load_data()
lr = Linear_Regression(train_X, train_y)
predicted = lr.predict(test_X)
RSS = return_RSS(test_y, predicted)
print("> RSS :",RSS)
plotting_graph(test_X, test_y, predicted)
if __name__=="__main__":
main()
반응형
'AI & 머신러닝 coding skill' 카테고리의 다른 글
머신러닝 Clustering - K-Means 클러스터링 (0) | 2022.05.23 |
---|---|
머신러닝 분류 - 로지스틱 회귀(Logistic Regression) (0) | 2022.05.23 |
머신러닝 - 회귀 알고리즘 평가 지표- R_squared (0) | 2022.05.23 |
머신러닝 - 회귀 알고리즘 평가 지표- MSE, MAE (0) | 2022.05.23 |
머신러닝 - 엘라스틱넷(ElasticNet) 회귀 (0) | 2022.05.23 |
머신러닝 - 릿지(Ridge), 라쏘(Lasso) 회귀 (0) | 2022.05.23 |
머신러닝 - 과적합 방지 기법 - 교차 검증 (0) | 2022.05.23 |
머신러닝 - 다항 회귀 모델 구현하기 (0) | 2022.05.23 |