파이썬으로 구현하는 머신러닝 : 회귀분석 - 사이킷런 활용한 라쏘 규제 실습

2022. 1. 18. 00:07·프로젝트/코드프레소 체험단

머신러닝에서는 과대적합(overfitting)을 줄이면서, 일반성을 가지는 모델을 생성하는 것이 중요함

이를 위해 사용되는 규제 기법에는 릿지(ridge) 회귀, 라쏘(lasso) 회귀 기법 등이 있음

 

라쏘 회귀(Lasso Regression)

 - 회귀계수의 절대값에 페널티를 부여하는 방식

 - 불필요한 회귀 계수를 0에 근사하도록 만들어 과대적합 개선

 - 주로 Feature Selection 의 목적으로 사용

 - L1 규제라고도 함

 - 모델러에 의해 지정된 alpha 값을 통해서 페널티를 조정할 수 있음

 

<적용 프로세스>
 1) alpha 값 정의
 2) Lasso(alpha) 클래스 객체 생성
 3) fit(X, y) 을 통해 학습 데이터 연결 및 규제 학습 수행
 4) predict(X) 통해 학습된 모델의 예측 수행
 5) score(X, y) 통해 R^2 값 확인(모델의 성능 지표 계산)

'''
-------- [최종 출력 결과] --------
Training-datasset R2 : 0.736
Test-datasset R2 : 0.693
Lasso Regression Coefficients :
RM         3.4
CHAS       1.8
RAD        0.3
ZN         0.1
INDUS      0.0
NOX       -0.0
AGE        0.0
TAX       -0.0
B          0.0
CRIM      -0.1
PTRATIO   -0.6
LSTAT     -0.7
DIS       -1.1
dtype: float64
----------------------------------
'''
# 필요한 라이브러리 로딩
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# sklearn.linear_model 모듈의 Lasso 클래스 로딩
from sklearn.linear_model import Lasso

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

# 데이터셋 분할
# test_size=0.3, random_state=12 로 지정하세요.
x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.3, random_state=12)

# 규제를 위한 alpha 값 초기화
# 학습시에는 alpha 값을 바꾸가면서 테스트해보시고,
# 최종 코드 제출시에는 0.1 로 지정후 제출하세요.
alpha = 0.1

# Lasso 클래스 객체 생성
lasso = Lasso(alpha=alpha)

# fit() 을 통한 규제 학습 수행
lasso.fit(x_train, y_train)

# predict() 를 통한 학습된 모델 기반 예측
lasso_pred = lasso.predict(x_test)

# score() 를 통해 회귀 모델의 R^2 출력
# 학습된 모델에 대한 R^2 계산
r2_train = lasso.score(x_train, y_train)
r2_test = lasso.score(x_test, y_test)
print('Training-datasset R2 : {0:.3f}'.format(r2_train))
print('Test-datasset R2 : {0:.3f}'.format(r2_test))

# 회귀 계수 저장을 위한 Seriess 객체 생성 및 출력
lasso_coef_table = pd.Series(data=np.round(lasso.coef_, 1), index=boston.feature_names)
print('Lasso Regression Coefficients :')
print(lasso_coef_table.sort_values(ascending=False))

# 막대그래프 시각화 
plt.figure(figsize=(10,5))
lasso_coef_table.plot(kind='bar')
plt.ylim(-10, 4)
plt.show()

라쏘 규제 실습 결과

 

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

파이썬으로 구현하는 머신러닝 : 분류분석 - 분류의 이해  (0) 2022.01.20
시각화를 위한 Matplotlib, Pandas 활용하기  (0) 2022.01.18
파이썬으로 구현하는 머신러닝 : 회귀분석 - 사이킷런 활용한 릿지 규제 실습  (0) 2022.01.17
파이썬으로 구현하는 머신러닝 : 회귀분석 - 규제의 이해  (0) 2022.01.16
파이썬으로 구현하는 머신러닝 : 회귀분석 - 다중 선형회귀 분석 실습  (0) 2022.01.16
'프로젝트/코드프레소 체험단' 카테고리의 다른 글
  • 파이썬으로 구현하는 머신러닝 : 분류분석 - 분류의 이해
  • 시각화를 위한 Matplotlib, Pandas 활용하기
  • 파이썬으로 구현하는 머신러닝 : 회귀분석 - 사이킷런 활용한 릿지 규제 실습
  • 파이썬으로 구현하는 머신러닝 : 회귀분석 - 규제의 이해
KimCookieYa
KimCookieYa
무엇이 나를 살아있게 만드는가
  • KimCookieYa
    쿠키의 주저리
    KimCookieYa
  • 전체
    오늘
    어제
    • 분류 전체보기 (576)
      • 혼잣말 (88)
      • TIL (3)
      • 커리어 (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 (169)
        • 코딩 (4)
        • CS (18)
        • 에러 (5)
        • 블록체인 (23)
        • Front-End (40)
        • 알고리즘&자료구조 정리 (3)
        • 코딩테스트 (3)
        • BOJ 문제정리 (41)
        • WILT (12)
        • ML-Agents (4)
        • 강화학습 (1)
        • Android (0)
        • LLM (2)
      • 전공 (1)
        • 머신러닝 (1)
      • 자기계발 (20)
        • 빡공단X베어유 (2)
        • 독서 (15)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

티스토리툴바