본문 바로가기

인공지능/머신러닝

ML을 해보자:선형 모델편 ( 보통 최소 제곱 )

반응형

이제부터 간단하게 ML이론들을 하나하나씩 구현해볼려고 합니다

 

맨 처음시작은 많은 분들께서 가장 많이 알고있는

선형 모델인 보통 최소 제곱을 해볼려고 합니다

보통 최소 제곱 모델 그래프

아마 ML을 조금이라도 공부하셨다면 ML은 크게 종류가 3가지인걸 아실겁니다

 

1. 지도, 비지도, 준지도, 강화학습

2. 온라인 학습과 배치 학습

3. 사례 기반 학습과 모델 기반 학습

 

당연히 지금 저희가 하고 있는 보통 최소 제곱 모델은 1번에 지도 학습이겠죠?

 

설명은 여기까지하고 코드를 봅시다

 

참고로 지금 현재 코드는 사이킷런 튜토리얼 사이트를 참고하여 만들고 설명하고 있습니다

 

먼저 import부분입니다

 

그 다음 코드부분으로 가시죠

 

만약 캡쳐사진을 따라 코드를 작성하셨다면 맨 처음 제가 보여드렸던 그래프가 생기실겁니다(pycharm기준)

 

import부분부터 부분적으로 설명해드리겠습니다

(혹시 따로 모르는 부분이 계시다면 댓글 달아주세요)

 

from sklearn.metrics import mean_squared_error, r2_score

 

이 부분에서 mean_squared_error와 r2_score가뭔지 모르실것 같아 설명드리자면

 

mean_squared_error는

평균 제곱 오차 회귀 손실하는 함수로

흔히

mean_squared_error( y_true , y_pred , sample_weight = None , multioutput = 'uniform_average' , squared = True )

이렇게 사용합니다

y_true : 목표값 설정, y_pred : 예상 목표값, sample_weight : 가중치, raw_value, 'raw_values' :다중 출력 입력의 경우 전체 오류 세트를 리턴합니다. 'uniform_average' : 모든 출력의 오차를 평균 무게로 평균화

squared boolean value, optional (default = True): True가 MSE 값을 반환하면 False가 RMSE 값을 반환합니다

(RMSE=> 평균제곱근 편차)

 

r2_score는

R ^ 2 (결정 계수) 회귀 점수 함수로

최상의 점수는 1.0이며 음수가 될 수 있습니다.

흔히

r2_score( y_true , y_pred , sample_weight = None , multioutput = 'uniform_average' )이렇게 사용합니다

여기서

y_ture : 올바른 목표 값. , y_pred : 예상 목표 값. , sample_weight : 샘플 무게. , 나머지는 위와 같습니다

 

자 이제 코드부분을 가면

처음

 

diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)

 

 이 부분에서 load_diabetes는 당뇨병 데이터 집합을 불러오고 반환해줍니다.

 

regr = linear_model.LinearRegression()이 부분은 선형 모델을 불러오는 코드입니다

 

그 밖에 질문이 있으시다면 댓글로 남겨주세요

 

아 앞으로 매주 3개씩 ML관련된 글들이 올라올겁니다.

참고해주세요

 

 

반응형
LIST