\

PLS回帰とは

PLSは部分的最小二乗回帰 (Partial Least Squares Regression)の略であり、サンプルサイズが小さかったり、多重共線性が考えられる場合に有効な分析方法の一つになります。

必要なモジュールの読み込み

以下のコードで必要なモジュールを読み込みます。

import numpy as np
import pandas as pd
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.decomposition import PCA
from sklearn.cross_decomposition import PLSRegression
import matplotlib.pyplot as plt
plt.style.use('ggplot') #グラフのスタイル
plt.rcParams['figure.figsize'] = [12, 9] # グラフサイズ設定

データの読み込みと分割

ボストン住宅価格のサンプルデータを読み込み、学習データとテストデータに分割します。

X,y = load_boston(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123)

PLS回帰モデルの構築

以下のコードでPLS回帰モデルを構築します。

PCR_model = make_pipeline(StandardScaler(), PCA(n_components=3), LinearRegression())
PCR_model.fit(X_train, y_train)

モデルの評価

構築したモデルの予測精度を、学習データで見てみます。

# R2(決定係数) R2
R2 = round(PCR_model.score(X_train, y_train),2)
# グラフ
plt.scatter(y_train, PCR_model.predict(X_train))
plt.title('Train data - R2='+str(R2))
plt.xlabel("actual")
plt.ylabel("predicted")

以上で、Pythonを用いたPLS回帰の実装についての基本的な流れを説明しました。この情報が役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です