2021. 2. 3. 00:55ㆍ머신러닝
우리가 많은 Input 변수를 가지고 있을 때, Subset Selection, Shrinkage Method는 활용하는 Input 변수의 수를 줄여주는 역할을 하였습니다. 반면에 Dimension Reduction Method는 특정 Input 변수를 활용시 제거하는 것이 아니라, 우리가 가지고 있는 Input 변수의 차원을 압축하여 활용하는 방법입니다.
Dimension Reduction Method는 우리가 가지고 있는 input변수
[Principa Components Regression(PCR)]
먼저 PCR은 차원 축소 방법 중에 대표적인 방법인 PCA를 활용하는 방안입니다. 즉 input 변수
간단하게 PCR이 이루어지는 Step을 표현하면 아래와 같습니다..

Python을 활용하여 PCR을 구현해보도록 하겠습니다. 먼저 PCA를 수행하여 입력 Dimension을 줄입니다. 이 때 PCA로 줄어든 변수들이 기존 입력변수
여기서는 48개의 주성분을 선택하여 PCA를 수행한 후, PCA를 수행한 결과를 바탕으로 회귀분석을 수행하였습니다.
from sklearn.linear_model import LinearRegression
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt
import pandas as pd
## Simulating data for regression
X, y = make_regression(n_samples=1000, n_features=100, n_informative=10, n_targets=1, random_state=10, noise=10)
print(X.shape, y.shape)
## Scaling
Xstd = StandardScaler().fit_transform(X)
ystd = StandardScaler().fit_transform(y)
## Selecting the number of components(above 60% of variance explained)
for i in range(30,50):
pca = PCA(n_components = i)
pca.fit_transform(Xstd)
print("n_Components:",i,"explained_variance:", sum(pca.explained_variance_ratio_))
## PCA
pca = PCA(n_components = 48)
X_pca = pca.fit_transform(Xstd)
## Regression
reg_pca = LinearRegression()
reg_pca.fit(X_pca, y)
reg_pca.coef_
[Partial Least Squares(PLS)]
PLS는 PCR과 마찬가지로 input 변수
PCR과 PLS의 최적화 목적을 수식으로 표현하면 아래와 같습니다.

Python을 활용하여 PLS Regression을 수행해보겠습니다.
from sklearn.cross_decomposition import PLSRegression
from sklearn.metrics import mean_squared_error
r_sq = {}
mse = {}
for i in range(1,50):
pls = PLSRegression(n_components=i)
pls.fit(Xstd, ystd)
r_sq[i]=pls.score(Xstd,ystd)
mse[i] = mean_squared_error(ystd, pls.predict(Xstd))
plt.plot(r_sq.keys(), r_sq.values(), "ro", alpha =0.5, label = "r_squares")
plt.plot(mse.keys(), mse.values(), "go", alpha =0.5, label = "mse")
plt.legend()
plt.show()

'머신러닝' 카테고리의 다른 글
선형 판별 분석(Linear Discriminant Analysis, LDA) (0) | 2021.02.21 |
---|---|
선형 분류 모형(Linear Methods for Classification) (0) | 2021.02.20 |
Shrinkage Method2(Elastic Net, LARS) (0) | 2021.01.24 |
Shrinkage Method (0) | 2021.01.23 |
Subset Selection (0) | 2021.01.13 |