분류란? 주어진 입력값이 어떤 클래스에 속할지에 대한 결과값을 도출하는 알고리즘 다양한 분류 알고리즘이 존재하며, 예측 목표와 데이터 유형에 따라 적용 그러나, 일반적인 회귀 알고리즘은 분류 문제에 그대로 사용할 수 없다! 그 이유는 선형 회귀는 마이너스 무한대 부터 플러스 무한대의 값을 가질 수 있기 때문이다. 따라서, 해당 클래스에 속할 확률인 0또는 1 사이의 값만 내보낼 수 있도록 선형 회귀 알고리즘 수정해야 한다. 이처럼 분류 문제에 적용하기 위해 출력값의 범위를 수정한 회귀를 로지스틱 회귀(Logistic Regression)이라고 함. 로지스틱 회귀(Logistic Regression) 이진 분류(Binary Classification) 문제를 해결하기 위한 모델 최소값 0, 최대값 1로 결..
회귀 알고리즘 평가 어떤 모델이 좋은 모델인지, 목표를 얼마나 잘 달성했는지 정도를 평가하는 지표 평가 지표 선정 방법 절대적인 평가 지표는 존재하지 않음 다양한 평가 지표를 적용해보고, 결과값을 비교하며 모델의 성능을 다양한 측면에서 확인해봐야 함 목표 달성 평가 방법 실제 값과 모델이 예측하는 값의 차이에 기반한 평가 방법 사용 - RSS, MSE, MAE, MAPE, R^2 RSS(Residual Sum of Squares) - 단순 오차 : 실제값과 예측값의 단순 오차 제곱 합, 값이 작을수록 모델의 성능이 높음. 가장 간단한 평가 방법으로 직관적인 해석이 가능함 전체 데이터에 대한 실제 값과 예측하는 값의 오차 제곱의 총합 오차를 그대로 이용하기 때문에 입력값의 크기에 의존적임 MSE(Mean ..
교차 검증이란? 과적합 방지를 위해 데이터를 분리하는 방법 k-fold 교차 검증 학습용 데이터를 계속 변경하며 모델을 훈련시키는 방법 k-fold 교차 검증 순서 K를 설정하여 데이터 셋을 K개로 나눔 K개 중 한 개를 검증용, 나머지를 학습용으로 사용 K개 모델의 평균 성능 확인 K-fold 교차 검증을 위한 사이킷런 함수/라이브러리 KFold(n_splits) n_splits : 분리할 데이터(fold) 개수 [KFold].split(X) 실제로 데이터를 분리하기 위한 인덱스를 반환합니다. X : 분리하고자 하는 데이터 import numpy as np from sklearn.model_selection import train_test_split from sklearn.datasets import ..
다항 회귀란? Y를 X에 대한 임의의 다항 함수로 모델링하는 선형 회귀를 의미합니다. 다항 회귀는 먼저 입력 데이터 X에 대한 전처리를 진행해준 후 다중 선형 회귀를 적용함으로써 구현됩니다. 사이킷런을 이용하면 입력 데이터에 대한 전처리를 편리하게 진행할 수 있습니다. 다항 회귀를 위한 사이킷런 함수/라이브러리 PolynomialFeatures(degree, include_bias) : Polynomial 객체를 생성합니다. degree : 만들어줄 다항식의 차수를 의미합니다. include_bias : 편향 변수의 추가 여부를 설정합니다. (True/False) True로 설정하게 되면, 해당 다항식의 모든 거듭제곱이 0일 경우 편향 변수를 추가합니다. 이는 회귀식에서 베타0와 같은 역할을 합니다. [..
사이킷런 라이브러리 : 머신러닝 모델 구현 뿐만 아니라 예시 데이터 셋, 데이터 전처리, 세부 조정, 모델 평가등과 같은 유용한 기능들을 제공 데이터 준비를 위한 사이킷런 함수/라이브러리 from sklearn.model_selection import train_test_split : 학습용 데이터와 테스트용 데이터를 나누어주는 기능을 불러옵니다. train_test_split(X, y, test_size=0.3, random_state=0) : 데이터의 70%를 학습에 사용하고, 나머지 30%의 데이터를 테스트용 데이터로 나눈 결과 데이터를 반환합니다. 단순 선형 회귀를 위한 사이킷런 함수/라이브러리 from sklearn.linear_model import LinearRegression : 단순 선형..