본문 바로가기
프로그래밍/Scikit-Learn

[Scikit-Learn] 24. Partial Least Square Regression 모형 적합하기 (feat. PLSRegression)

by 부자 꽁냥이 2023. 4. 8.

Scikit-Learn에서는 PLSRegression 클래스를 이용하여 부분 최소 제곱 회귀(Partial Least Square Regression : PLSR) 모형을 학습할 수 있다. 이번 포스팅에서는 PLSRegression 클래스의 기본적인 사용법에 대해서 알아본다.

 

부분 최소 제곱 회귀(Partial Least Square Regression : PLSR) 모형에 대한 개념은 아래 포스팅을 참고하면 된다.

 

38. 부분 최소 제곱 회귀(Partial Least Square Regression : PLSR)에 대해서 알아보자 with Python

 

38. 부분 최소 제곱 회귀(Partial Least Square Regression : PLSR)에 대해서 알아보자 with Python

이번 포스팅에서는 부분 최소 제곱 회귀(Partial Least Square Regression : PLSR)에 대한 개념과 파이썬 구현 방법을 알아보고자 한다. - 목차 - 1. 부분 최소 제곱 회귀(Partial Least Square Regression : PLSR)란? 2.

zephyrus1111.tistory.com


   PLSRegression 사용법 

여기에서는 Scikit-Learn의 예제에서 나오는 코드를 이용했다. PLSRegression은 알고리즘 최대 반복수(max_iter), 선형 결합 개수(n_components), 설명 변수와 반응 변수 행렬의 스케일링 여부(scale) 등의 인자를 설정할 수 있다. 그리고 fit 메서드를 이용하면 PLSR 모형을 학습할 수 있다. 

 

import numpy as np

from sklearn.cross_decomposition import PLSRegression

X = np.array([[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [2.,5.,4.]])
Y = np.array([[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]])

pls_reg = PLSRegression(
              max_iter=500, ## 알고리즘 최대 반복수
              n_components=2, ## 선형 결합 개수
              scale=False, ## 스케일링 여부 (평균 센터링은 하지만 일반적으로 스케일링은 할지 말지 지정)
              tol=1e-06 ## 오차 한계
                ).fit(X, Y)

 

모형을 학습하고 난 뒤 접근할 수 있는 속성들은 다음과 같다(Scikit-Learn 최신 버전에서는 intercept_ 속성을 통해 절편항 정보도 가져올 수 있다).

 

X_score = pls_reg.x_scores_ ## 선형 결합
X_loading = pls_reg.x_loadings_ ## 로딩 행렬
X_rot = pls_reg.x_rotations_ ## 회전 행렬 (X - np.mean(X, axis=0)) @ X_rot = X_score 가 된다.
Y_score = pls_reg.y_scores_ ## 반응 변수 선형 결합
Y_loading = pls_reg.y_loadings_ ## 로딩 행렬
Y_rot = pls_reg.y_rotations_ ## 회전 행렬
beta = pls_reg.coef_ ## 회귀 계수

 

마지막으로 predict 메서드를 이용하면 예측값(여기에서는 행렬)을 얻을 수 있다.

 

print('예측 :', pls_reg.predict(X))

 


댓글


맨 위로