主成分回歸(principal components regression,pcr
)#使用
p1s
庫中的
pcr ()
渴數實現主成分回歸
(pcr)
#install.packages("pls")
library(pls)
set.seed(2)
pcr.fit=pcr(salary~., data=hitters,scale=true,validation="cv")
#設最
validation = "cv"
可以使得
pcr ()
函式使用十折的交叉驗證計算每個可能的主成分個數
m所對應的交叉驗證誤差。
#使用
validatìonplot ()
函式作出交叉驗證得分的影象,
mse是均方誤差
結果分析:從程式結果可以看到,當使用
m=16
個成分時,交叉驗證誤差最小。這個取值稍小於
m=19 , m=19
時 pcr
模型相當於簡單最小二乘估計,因為此時在
pc模型使用了所有的成分,並沒有降低資料的維度。 且是,從影象可以看到當模型中只納入乙個成分時,交叉驗證誤基本相同。這表明使用僅納入少量成分的模型就足夠了。
set.seed(1)
pcr.fit=pcr(salary~., data=hitters,subset=train,scale=true, validation="cv")
#在訓練集上使用
pcr,並評價該方法在測試集上的使用情況。
結果分析:當使用
m=7個成分時,交叉驗證誤差最小。
pcr.pred=predict(pcr.fit,x[test,],ncomp=7)
mean((pcr.pred-y.test)^2)
#計算測試集
msepcr.fit=pcr(y~x,scale=true,ncomp=7)
#在整個資料集上使用交叉驗證選擇出的成分個數
m=7擬合
pcr
模型。summary(pcr.fit)
偏最小二乘回歸
(partial least squares,pls)
#使用
plsr ()
函式可以擬合偏最小二乘回歸模型,該函式也在
pls庫中,其句法與
pcr ()
函式的句法相似。
結果分析:當使用
m=2個成分時,交叉驗證誤差最小。
pls.pred=predict(pls.fit,x[test,],ncomp=2)
mean((pls.pred-y.test)^2)
pls.fit=plsr(salary~., data=hitters,scale=true,ncomp=2)
#使用了交叉驗證選取的
m=2
個成分在整個資料集上建立
pls
模型。summary(pls.fit)
sklearn 最小二乘線性回歸
sklearn是機器學習中的乙個常用的python第三方模組,裡面對機器學習的許多方法進行了封裝,在進行機器學習的任務時,許多常用的演算法可在這個模組中直接呼叫。並且sklearn中還提供了許多可用於分類 回歸的優質資料集。使用好sklearn最直接的方法就是仔細閱讀官方 sklearn就像是乙個模...
線性回歸 最小二乘 diabetes
資料集 特徵 age 年齡 性別 bmi 體質指數 bp 血壓 s1,s2,s3,s4,s4,s6 六種血清的化驗資料 標籤 value 一年後疾病進展的量化指標 一 載入庫 import numpy as np import pandas as pd from sklearn import dat...
多元回歸 最小二乘
最小二乘和回歸分析的區別 最小二乘法是在模型確定的情況下對未知引數由觀測資料來進行估計,而回歸分析則是研究變數間相關關係的統計分析方法。需要補基礎的看這 定義 最小二乘法 最小平方法 是一種數學優化技術,它通過最小化誤差的平方和尋找資料的最佳函式匹配。e i 1n ei2 i 1 n yi f x ...