본문 바로가기

전체 글99

머신러닝 - 회귀 알고리즘 평가 지표- R_squared 회귀 알고리즘 평가 지표- R_squared 이번 실습에서는 R^2 에 대해 알아보겠습니다. R^2 또한 사이킷런 모듈 안에 존재하여 쉽게 불러오기 만으로도 회귀 모델 평가 지표를 계산할 수 있습니다. 특히 이전 실습들에서 살펴본 RSS, MSE, MAE 지표들은 “오차” 에 기반한 지표들이기 때문에 해당 값들이 작을수록 더 높은 성능의 모델을 의미하지만, R^2 지표의 경우 데이터에 대한 모델의 설명력을 의미하기 때문에 1에 가까울수록 즉, 더 클수록 높은 성능의 모델임을 의미합니다. R^2 평가 지표를 계산하기 위한 사이킷런 함수/라이브러리 from sklearn.metrics import r2_score : R^2 평가 지표 계산 기능 불러오기 r2_score(y_true, y_pred) : R^2.. 2022. 5. 23.
머신러닝 - 회귀 알고리즘 평가 지표- MSE, MAE 회귀 알고리즘 평가 지표- MSE, MAE 이번 실습에서는 MSE와 MAE에 대해 알아보겠습니다. MSE와 MAE는 사이킷런 라이브러리 안에 존재하여 쉽게 불러오기 만으로도 회귀 모델 평가 지표를 계산할 수 있습니다. MSE, MAE 평가 지표를 계산하기 위한 사이킷런 함수/라이브러리 from sklearn.metrics import mean_absolute_error : MAE 평가 지표 계산 기능 불러오기 mean_absolute_error(y_true, y_pred): MAE 값 계산하기 from sklearn.metrics import mean_squared_error: MSE 평가 지표 계산 기능 불러오기 mean_squared_error(y_true, y_pred): MSE 값 계산하기 fro.. 2022. 5. 23.
머신러닝 - 회귀 알고리즘 평가 지표- RSS 회귀 알고리즘 평가 지표- 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(.. 2022. 5. 23.
머신러닝 - 엘라스틱넷(ElasticNet) 회귀 엘라스틱넷(ElasticNet) 회귀 이전 실습을 통해 라쏘 회귀와 릿지 회귀에 대해 알아보았습니다. 이전 실습에서 그래프를 통해 확인한 바와 같이 라쏘(L1 정규화) 회귀는 너무 많은 βi를 0으로 만들고, 릿지(L2 정규화) 회귀는 βi를 완전히 0으로 만들지는 않기 때문에 여전히 모델의 복잡성이 높습니다. 따라서, 이 L1, L2 정규화를 동시에 사용하여 두 회귀의 장점을 가진 회귀인 엘라스틱넷 회귀가 등장하게 된 것입니다. 엘라스틱 넷 회귀는 L1 ,L2 정규화를 반영한 비율을 설정할 수 있기 때문에 결과를 확인해가며 자유롭게 비율을 조정해 높은 예측 성능을 가진 모델을 만들어보세요. 엘라스틱넷 회귀를 위한 사이킷런 함수/라이브러리 from sklearn.linear_model import Ela.. 2022. 5. 23.
머신러닝 - 릿지(Ridge), 라쏘(Lasso) 회귀 릿지(Ridge), 라쏘(Lasso) 회귀 정규화 방법을 적용한 총 3가지(릿지, 라쏘, 엘라스틱 넷) 과적합 방지 모델 중 먼저 릿지(Ridge), 라쏘(Lasso) 회귀에 대해 알아보겠습니다. 사이킷런에 구현된 릿지 회귀와 라쏘 회귀를 이용하여 데이터를 학습시키고, βi 들의 크기를 확인해보겠습니다. 사이킷런 데이터의 변수 이름을 불러오기 위한 방법 load_boston().feature_names : boston 데이터의 변수 이름을 반환합니다. 릿지(Ridge), 라쏘(Lasso) 회귀를 위한 사이킷런 라이브러리/함수 from sklearn.linear_model import Ridge : 사이킷런에 저장된 릿지 회귀를 불러옵니다. Ridge(alpha): 릿지 회귀를 정의합니다. alpha: 기.. 2022. 5. 23.
머신러닝 - 과적합 방지 기법 - 교차 검증 과적합 방지 기법 - 교차 검증 과적합을 방지하기 위해서 어떠한 방식을 사용하여야 할 지에 대해 실습을 통해 알아보도록 하겠습니다. 교차 검증(cross validation) 은 과적합 방지를 위해 데이터를 분리하는 방법입니다. 기존 실습 문제들에서 학습용 데이터와 테스트용 데이터로 분리하는 방법을 적용하였는데, 이번 실습에서는 테스트 뿐만 아니라 검증용(Validation) 데이터를 활용하여 모델 결과를 평가해보겠습니다. 일반적으로 교차 검증에서 가장 많이 사용되는 것이 바로 k-fold 교차 검증입니다. k-fold 교차 검증은 아래와 같이 학습용 데이터를 계속 변경하며 모델을 훈련시키는 방법입니다. k-fold 교차 검증은 다음과 같은 순서로 진행됩니다. 데이터를 train, test 데이터로 분할.. 2022. 5. 23.
머신러닝 - 다항 회귀 모델 구현하기 다항 회귀 모델 구현하기 다항 회귀는 Y를 X에 대한 임의의 다항 함수로 모델링하는 선형 회귀를 의미합니다. 다항 회귀는 먼저 입력 데이터 X에 대한 전처리를 진행해준 후 다중 선형 회귀를 적용함으로써 구현됩니다. 사이킷런을 이용하면 입력 데이터에 대한 변환(전처리) 을 편리하게 진행할 수 있습니다. 따라서 이번 시간에는 사이킷런을 활용하여 다항 회귀를 구현해보겠습니다. 다항 회귀를 위한 사이킷런 함수/라이브러리 PolynomialFeatures(degree, include_bias): Polynomial 객체를 생성합니다. degree: 만들어줄 다항식의 차수를 의미합니다. include_bias : 편향 변수의 추가 여부를 설정합니다.(True/False) True로 설정하게 되면, 해당 다항식의 모.. 2022. 5. 23.
머신러닝 - 다중 선형 회귀 모델 구현하기 다중 선형 회귀 모델 구현하기 다중 선형 회귀는 입력값이 1개일 경우 적용하는 단순 선형 회귀 알고리즘과 달리 입력값 X가 여러 개일 때 사용할 수 있는 회귀 알고리즘입니다. 다중 선형 회귀 또한 사이킷런에 구현되어 있는 라이브러리를 활용하여 간단하게 모델을 구현해보겠습니다. 단순 선형 회귀 실습을 통해 LinearRegression 클래스를 정의하고 사용한 것을 기억하시나요? 사실 위 클래스는 다중 선형 회귀에서도 사용이 가능합니다. 사이킷런에서는 선형 회귀 라는 이름으로 단순/다중 선형 회귀의 구분 없이 동일한 모듈을 활용할 수 있습니다. 사이킷런에 저장된 데이터를 불러오고, 불러온 데이터를 다중 선형 회귀 모델을 사용해 예측을 진행해보도록 하겠습니다. 우리가 사용할 데이터는 1978년에 발표된 ‘보.. 2022. 5. 23.
머신러닝 - 회귀(Regression) 사이킷런 단순 선형 회귀 모델 구현하기 입력값 X가 1개인 경우 적용하는 회귀 알고리즘인 단순 선형 회귀 모델에 대해 알아보았습니다. 실습 1에서와 같이 회귀 모델의 함수식 Y=β0+β1X을 이용하여 알고리즘을 직접 구현할 수도 있지만, 사이킷런(scikit-learn) 이라고 하는 머신러닝 라이브러리에 구현되어 있는 모델을 불러오는 것만으로도 쉽게 단순 선형 회귀 알고리즘을 사용할 수 있습니다. 사이킷런은 머신러닝 모델 구현 뿐만 아니라 예시 데이터 셋, 데이터 전처리, 세부 조정, 모델 평가 등과 같은 유용한 기능들을 제공합니다. 이번 실습에서는 사이킷런을 활용하여 단순 선형 회귀를 구현하는 방법을 익혀보도록 하겠습니다. 데이터 준비를 위한 사이킷런 함수/라이브러리 from sklearn.model_selec.. 2022. 5. 23.