본문 바로가기

기타

[Sklearn] 회귀 알고리즘 정리

먼저 회귀란, 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링 하는 기법을 통칭한다.

즉, Y= W1*X1 + W2*X2 + ... + Wn*Xn 이라는 선형 회귀식에서 Y는 종속 변수, X는 독립 변수, W는 독립 변수의 값에 영향을 미치는 회귀 계수(Regression coefficients)이다. 우리는 학습을 통해 최적의 회귀 계수를 찾아야 한다. 

[Week5] 05. 회귀(1) (tistory.com)

 

[Week5] 05. 회귀(1)

01. 회귀 소개 회귀(Regression)는 여러 개의 독립변수와 한 개의 종속 변수 간의 상관관계를 모델링하는 기법. Y = W1X1 + W2X2 + ... + WnXn 이라는 선형 회귀식에서, Y는 종속변수, X는 독립변수, W는 독립

jain5379.tistory.com

(자세한 내용 참고)

 

회귀 계수가 선형인지에 따라 선형 회귀/비선형 회귀, 독립변수의 개수에 따라 단일 회귀/다중 회귀로 나뉜다.

분류와 회귀의 가장 큰 차이점은 분류(Classfication)는 예측값이 카테고리와 같은 이산형 클래스 값이고, 회귀(Regression)는 연속형 숫자 값이라는 것이다.


일반 선형 회귀(+경사하강법)

  • 독립 변수도 하나, 종속 변수도 하나인 선형 회귀
  • 특정 기울기(w1)와 절편(w0)을 회귀 계수로 지칭하며, 1차 함수식으로 모델링이 가능하다.
  • 실제 값과 회귀 모델의 차이에 따른 오류 값, 잔차의 합이 최소가 되는 모델을 만든다.
  • 잔차는 + 혹은 -가 될 수 있으므로 절댓값으로 더하거나(Mean Absolute Error) 제곱을 구해서 더한다.(RSS, Residual Sum of Square)
  • 경사 하강법(Gradient Descent)를 이용하여 비용 함수 RSS를 최소화 한다.
  • LinearRegression 클래스는 규제가 없는 선형 회귀를 RSS를 최소화하는 방식으로 구현한 클래스이다.
  • fit() 메서드로 X,y 배열을 입력받으면 회귀 계수(W)를 coef_속성에 저장한다.
class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=Treu, n_jobs=1)

https://rebro.kr/185

 

[머신러닝] 단순 선형 회귀(Simple Linear Regression)

[목차] 1. 선형 회귀 2. 단순 선형 회귀 실습 1. 선형 회귀(Linear Regression) 선형 회귀(Linear Regression)는 널리 사용되는 대표적인 회귀 알고리즘이다. 선형 회귀는 종속 변수 y와 하나 이상의 독립 변수

rebro.kr

 

 

 

릿지(Ridge)

  • RSS를 최소화 하는 방향으로만 학습할 때 생기는 과적합 문제를 해결하기 위해 L2 규제를 적용함.
  • 즉, 비용함수 cost = RSS 최소화 + 회귀 계수 크기 제어(규제)
  • alpha값을 크게하면 규제가 커져 과적합 개선, 작게 하면 학습 데이터 적합을 개선할 수 있다.
  • L2 규제는 W의 제곱에 대해 패널티를 부과한다.

https://velog.io/@jochedda/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%A6%BF%EC%A7%80-%ED%9A%8C%EA%B7%80-Ridge-Regression

 

[머신러닝] 릿지 회귀 (Ridge Regression)

→ 규제가 추가된 선형 회귀 이다. 이 규제항은 학습 알고리즘을 데이터에 맞추는 것뿐만 아니라 모델의 가중치가 가능한 작게 유지되도록 한다.

velog.io

 

 

라쏘(Lasso)

  • L1 규제를 적용한 선형 회귀
  • w의 절댓값에 페널티를 부과하며, 불필요한 회귀 계수를 급격하게 감소시켜 0으로 만들고 제거한다. 즉, 피처 선택의 특성을 가진다.

https://velog.io/@jochedda/%EB%A8%B8%EC%8B%A0-%EB%9F%AC%EB%8B%9D%EB%9D%BC%EC%8F%98-%ED%9A%8C%EA%B7%80Lasso-Regression

 

[머신 러닝] 라쏘 회귀(Lasso Regression)

→ 라쏘 회귀는 선형 회귀의 또 다른 규제된 버전릿지 회귀처럼 비용 함수에 규제항을 더하지만 릿지 회귀와 다르게 가중치 벡터 $l_1$ 노름을 사용한다

velog.io

 

 

 

엘라스틱넷(ElasticNet)

  • L2 규제와 L1 규제를 결합한 회귀
  • 변수의 수가 훈련 샘플의 수보다 많고, 변수 몇 개가 강하게 연관되어 있을 경우 라쏘에 문제가 발생하므로 엘라스틱넷 회귀를 선택한다.
  • 시간이 오래걸린다.
  • 파라미터는 l1_ratio = a/(a+b)이다. l1_ratio의 값이 0, 즉 a가 0이면 L2 규제와 동일하다. 반대로 l1_ratio의 값이 1이면 b가 0이므로 L1 규제와 동일하다.

https://yganalyst.github.io/ml/ML_chap3-4/

 

[Handson ML] 릿지(Ridge),라쏘(Lasso),엘라스틱 넷(Elsatic-net) - 모델 훈련

모델의 과대적합을 방지하기 위해 선형모델에 규제를 걸어주는 릿지, 라쏘 회귀와 엘라스틱 넷에 대해 알아보자

yganalyst.github.io

 

 

 

로지스틱 회귀(Logistic Regression)

  • 선형 회귀 방식을 분류애 적용한 알고리즘
  • sigmoid 함수 최적선을 찾고 함수의 반환값을 확률로 간주해 분류를 결정한다. 따라서 0~1사이의 값 반환
  • LogisticRegression 클래스에서 slover 파라미터로 최적화 방식을 선택할 수 있다. 일반적으로 lbfgs 또는 liblinear 선택
  • penalty 파라미터와 C(=1/alpha)를 이용해 규제를 적용할 수 있다.

https://velog.io/@skkumin/%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1-%ED%9A%8C%EA%B7%80Logistic-Regression

 

로지스틱 회귀(Logistic Regression)

로지스틱 회귀 모델은 일종의 확률 모델로서 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는데 사용되는 통계기법이며 종속 변수가 범주형 데이터를 대상으로 하며 입력 데

velog.io

 

 

 

회귀 트리

  • 회귀를 위한 트리를 생성하고 이를 기반으로 회귀 예측 진행
  • 리프 노드에 속한 데이터 값의 평균값을 구해 회귀 예측값을 계산한다.
  • DecisionTree, Gradient Boost, XGBoost, LightGBM 모두 분류/회귀가 가능하다.
  • 선형 회귀와 다른 처리 방식이므로 coef_속성이 없으나 feature_importances_로 피처별 중요도를 알 수 있다.
  • 과적합이 발생하기 쉬우므로 depth와 node 수를 조절해야 한다. Pruning(가지치기) 필요.

https://velog.io/@gangjoo/ML-%ED%9A%8C%EA%B7%80-%ED%9A%8C%EA%B7%80-%ED%8A%B8%EB%A6%AC-Regression-Tree

 

[ML] 회귀 - 회귀 트리 (Regression Tree)

scikit-learn의 결정 트리와 결정 트리 기반의 앙상블 알고리즘은 분류 말고 회귀도 가능함트리가 CART (Classification and Regression Tree)를 기반으로 만들어졌기 때문CART 회귀 트리는 분류와 유사하게 분

velog.io

 

 

+ 추가

  • 선형 회귀는 피처값과 타깃값의 분포가 정규 분포(종 모양)인 형태를 매우 선호한다.
  • standardScaler/MinMaxScaler, 다항 특성, 로그 변환 등을 이용하여 데이터 전처리를 진행한다.

[Week5] 05. 회귀(2) (tistory.com)

 

[Week5] 05. 회귀(2)

05. 다항 회귀와 과(대)적합/과소적합 이해 다항 회귀 이해 이전 회귀는 독립변수(feature)와 종속변수(target)의 관계가 일차 방정식으로 표현된 회귀였다. 다항(Polynomial) 회귀란 독립 변수의 단항식

jain5379.tistory.com

피처 데이터 세트 변환 방법 참고

 

 


#회고

 

분류에 이어 회귀도 끝!

비록 기계학습 중간고사는 망했지만...🥲