とある技術者の徒然草

生産技術者の適当な日記(統計言語Rに関するメモがメイン)

【R言語】部分最小二乗法 plsパッケージ

plsパッケージによる部分最小二乗法


書籍「Rによる統計的学習入門」の防備メモとして記録しておく

・部分最小二乗法(PLS:partial least squares)とは
 ・PCRに代わる教師ありの手法
 ・次元を削減する手法
 ・元の特徴の線形結合によりM個の新たな特徴を作り、
  これらM個の特徴を使って最小二乗法により線形モデルにあたはめる。

library(ISLR)
data(Hitters)
Hitters %>% drop_na() -> Hitters2
x <- model.matrix(Salary~.,Hitters)[,-1]#interceptを除く
y <- Hitters2$Salary

train <- sample(1:nrow(Hitters2),nrow(Hitters2)/2)
test <- (-train)
y_test <- y[test]

library(pls)
pls_fit <- plsr(Salary~.,data = Hitters2 ,subset = train, scale=TRUE ,validation="CV")

summary(pls_fit2)

validationplot(pls_fit,val.type = "MSEP")#特徴量が2つの場合MSEが最小

pls_pred <- predict(pls_fit,x[test,],ncomp=2)
#MSE
mean((pls_pred-y[test])^2)