파이썬으로 구현하는 머신러닝 : 회귀분석 - 다중 선형회귀 분석 실습

2022. 1. 16. 19:52·프로젝트/코드프레소 체험단
다중 선형회귀 분석의 목표 : 종속변수를 가장 잘 설명할 수 있는 최적의 회귀변수를 찾아 회귀선을 추정하는 것

 

* LinearRegression API의 Method(함수)

 - fit(X, y) : 학습 데이터를 이용하여 모델의 회귀계수(w) 와 편향(b)을 학습
 - predict(X) : 모델에 테스트 데이터를 입력하여 계산된 예측값 반환
 - score(X, y) : 모델에 테스트 데이터를 입력하여 모델의 성능지표(𝑅^2) 반환
 

* LinearRegression API의 Attribute(속성)
 - coef_: 학습된 모델의 회귀 계수(W)
 - intercept_: 학습된 모델의 bias 값(b)

 

13개의 독립변수(feature 속성)로 1개의 종속변수(lable) 예측하는 다중 선형회귀 분석 모델

-> 13개의 가중치를 가짐.

'''
-------- [최종 출력 결과] --------
Weight: [ -0.1   0.1   0.1   3.3 -17.2   3.6   0.   -1.4   0.3  -0.   -0.8   0.
  -0.6]
Bias: 33.18
MSE  : 25.549
MAE  : 3.606
RMSE : 5.055
MAPE : 0.177
R-squared(r2_score) : 0.709
R-squared(r2_metric) : 0.709
----------------------------------
'''

# 필요한 라이브러리 로딩
import numpy as np
import pandas as pd

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 모델 성능 평가를 위한 metrics 모듈 로딩
from sklearn import metrics

# 데이터셋 로딩
boston = load_boston()

# 데이터셋 분할
# random_state 값은 강의와 동일하게 지정하세요.
x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.3, random_state=12)
                             
# LinearRegression 객체 생성
regression = LinearRegression()

# 학습데이터 연결 및 학습 수행
regression.fit(x_train, y_train)

# 모델 예측
y_pred = regression.predict(x_test)

# 회귀 계수 출력
weight = np.round(regression.coef_, 1)
bias = np.round(regression.intercept_, 2)
print('Weight:', weight)
print('Bias:', bias)

# 컬럼별 회귀계수 출력
coef_table = pd.Series(data=weight,
                        index=boston.feature_names)

# 아래는 출력 결과만 확인하시고, 
# 최종 제출시에는 주석으로 처리해주세요
# print('Regression Coefficients :')
# print(coef_table.sort_values(ascending=False))

# 회귀 분석 모델을 위한 평가 지표 계산
mse = metrics.mean_squared_error(y_test, y_pred)
mae = metrics.mean_absolute_error(y_test, y_pred)
rmse = np.sqrt(metrics.mean_squared_error(y_test, y_pred))
mape = metrics.mean_absolute_percentage_error(y_test, y_pred)

print('MSE  : {0:.3f}'.format(mse))
print('MAE  : {0:.3f}'.format(mae))
print('RMSE : {0:.3f}'.format(rmse))
print('MAPE : {0:.3f}'.format(mape))

# R-squared 를 통한 모델의 설명력 평가
r2_score = regression.score(x_test, y_test)
r2_metric = metrics.r2_score(y_test, y_pred)

print('\nR-squared(r2_score) : {0:.3f}'.format(r2_score))
print('R-squared(r2_metric) : {0:.3f}'.format(r2_metric))

 

'프로젝트 > 코드프레소 체험단' 카테고리의 다른 글

파이썬으로 구현하는 머신러닝 : 회귀분석 - 사이킷런 활용한 릿지 규제 실습  (0) 2022.01.17
파이썬으로 구현하는 머신러닝 : 회귀분석 - 규제의 이해  (0) 2022.01.16
파이썬으로 구현하는 머신러닝 : 회귀분석 - 회귀모델의 추정과 평가  (0) 2022.01.16
시각화를 위한 Matplotlib 활용하기  (0) 2022.01.16
파이썬으로 구현하는 머신러닝 : 회귀분석 - 회귀의 이해  (0) 2022.01.16
'프로젝트/코드프레소 체험단' 카테고리의 다른 글
  • 파이썬으로 구현하는 머신러닝 : 회귀분석 - 사이킷런 활용한 릿지 규제 실습
  • 파이썬으로 구현하는 머신러닝 : 회귀분석 - 규제의 이해
  • 파이썬으로 구현하는 머신러닝 : 회귀분석 - 회귀모델의 추정과 평가
  • 시각화를 위한 Matplotlib 활용하기
KimCookieYa
KimCookieYa
무엇이 나를 살아있게 만드는가
  • KimCookieYa
    쿠키의 주저리
    KimCookieYa
  • 전체
    오늘
    어제
    • 분류 전체보기 (574)
      • 혼잣말 (88)
      • TIL (2)
      • 커리어 (24)
        • Sendy (21)
        • 외부활동 기록 (2)
      • 프로젝트 (186)
        • 티스토리 API (5)
        • 코드프레소 체험단 (89)
        • Web3 (3)
        • Pint OS (16)
        • 나만무 (14)
        • 대회 (6)
        • 정글 FE 스터디 (16)
        • MailBadara (12)
        • github.io (1)
        • 인공지능 동아리, AID (5)
        • 졸업과제 (18)
        • OSSCA 2024 (1)
      • 크래프톤 정글 2기 (80)
      • IT (168)
        • 코딩 (4)
        • CS (18)
        • 에러 (5)
        • 블록체인 (23)
        • Front-End (39)
        • 알고리즘&자료구조 정리 (3)
        • 코딩테스트 (3)
        • BOJ 문제정리 (41)
        • WILT (12)
        • ML-Agents (4)
        • 강화학습 (1)
        • Android (0)
        • LLM (2)
      • 전공 (1)
        • 머신러닝 (1)
      • 자기계발 (20)
        • 빡공단X베어유 (2)
        • 독서 (15)
  • 블로그 메뉴

    • 홈
    • 방명록
    • Github
    • Velog
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    MailBadara
    RNN
    Flutter
    리액트
    센디
    사이드프로젝트
    OS
    NEAR Protocol
    react
    docker
    니어프로토콜
    프로그래머스
    코드프레소
    딥러닝
    부산대
    글리치해커톤
    나만무
    파이썬
    블록체인
    JavaScript
    머신러닝
    자바스크립트
    Pint OS
    졸업과제
    알고리즘
    numpy
    크래프톤정글
    핀토스
    pintos
    해커톤
  • hELLO· Designed By정상우.v4.10.3
KimCookieYa
파이썬으로 구현하는 머신러닝 : 회귀분석 - 다중 선형회귀 분석 실습
상단으로

티스토리툴바