昨天一整篇寫得不算太過空洞,但總結下來其實也就一句話的意思——所謂公式接口,不過是一串轉成公式格式的文本
按這邏輯,今天的內容,其實也可以總結成一句話:
所謂預測模型,就是個自定義類型名稱的列表
不信,咱拆解一個看看,比方說線性迴歸預測,用的建模函數是lm,配套了一個預測算法predict.lm,咱先按平時正常用的自動版建一個lm的模型:
用str看看結構,上頭很清楚的顯示出這是由12個成分組成的列表,由於太長,沒能全部截進圖裡去
試驗一:破壞性試驗
儘可能多的砍掉LM1列表中的成分,看看是否還能完成預測
這裡要用到一個專業轉數據類型的函數,class
#產生一份新數據NewData
NewData predict(LM1, NewData)
#從LM1中拆掉一部分不要
LM2 #此時由於LM1結構被破壞,LM2的類型為列表(list),需轉回lm類型
class(LM2)
class(LM2) #試試沒有完整組成的LM2是否還可以做predict
predict(LM2, NewData)
歐耶,試驗一通過~~ 此時迴歸模型中保留的列表內容如下:
12個成分被切到還剩4個,雖然還是有點長,但一個屏已經能截得下了,既然都做到這兒了,不妨玩得再過一點,咱。。。自己組個lm模型試試?
試驗二:組裝試驗,手製lm模型
qr那個函數我沒怎麼看懂,不過這不是今天的重點,先隨便出點數據用著吧
#手敲搞出四個組件,其中qr和terms是有現成函數的
Co1 Rk1 Q1 Te1 #把四個組件拼起來,注意要把名字打對
LM3 #整體轉成lm模型
class(LM3) #代入predict看看能不能出結果
predict(LM3, NewData)
O~Yeah~~~這下真是玩夠了,我可以去看電視了
閱讀更多 jennifer5jl 的文章