R_Language 板


LINE

研究 S3 與 predict() 的關聯 ----------------------------- 我以前的觀念 認為 predict() 的使用 , 是湊齊兩種條件 1. model <- lm(y~x) : 給予 linear model 2. Xpoint <- as.data.fram(x) : 給予 x 向量 在這樣的情況下 model 提供了回歸模型的趨勢線參數 y=ax+b Xpoint 提供了 x 值 , 套入趨勢線的 y=ax+b 得到 predicted y , 異於 real data y ----------------------------- 但我現在在研究一個 R package 作者的程序如下 source(../script/sourcetracker.R) 這個 sourcetracker.R 裡面包有一個 main function , sourcetracker() 還有大約 10 來個小 functions ----------------------------- 作者先用 sourcetracker() , 產生一個 model 變數 model 變數的內容很單純 , 都是 matrix 與 factor 而已 (我有把它拆開來跑過了 , 確定是單純變數) model <- list(NULL) model[[2]] <- 原始矩陣 (training set) [90樣本 & 100features] model[[3]] <- group factors [30 vs 30 vs 30 (total 90 樣本)] model[[1]] <- 根據 model[[3]] 的 factor , 將原始矩陣分成三分取 colSums 然後再 rbind() , 變成 [3混合樣本 & 100 features] 最後作者加了一行 class(model) <- "sourcetracker" ----------------------------------------------------------- 接下來作者進行 predict() predict( model , testSET , alpha1=0.001 , alpha2=0.001 ) 其中 model[[2]] 是 training set , 用來建造 model [資料矩陣維度 : 90 x 100] 而 testSET 是 testing set , 是需要被預測的資料 [資料矩陣維度 :10 x 100] *** 如果把 source(../script/sourcetracker.R) 收進來的小 fuinction 砍掉 , predict() 會跳出錯誤 ----------------------------------------------------------- 關鍵在這行 class(model) <- "sourcetracker" 當宣告了特定 class 後 再套用 predict() , predict() 就能進行計算 (不加就不能算) 但 model 這個變數根本不是 線型模型 所以 predict() 吃入 model 變數後 還需要做一大堆事情才能得到結果 (Gibb`s sampling,cross-validation,貝式 etc.) 但我不明白的是 , predict() 是怎麼知道接下來要做哪些事情? 因為我看其他的 internal function , 並沒有特別宣稱自己是屬於 "sourcetracker" 那 predict() 要怎麼辨認這些 function , 並按照正確的順序使用?? 誠心求教 -- 我用名為真心的卡牌說服你 這是我最後一張牌 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.215.136 ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:13) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:13) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:14) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:15) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:16) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:16) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:17) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:17) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:19) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:20) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:21) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:30) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:32) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:35) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:35) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:37) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:37) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:38) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:38) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:39) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:43) ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:43)



※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: gsuper (114.32.215.136), 時間: 11/30/2013 22:45:16 ※ 編輯: gsuper 來自: 114.32.215.136 (11/30 22:45)
1F:→ clickhere:predict.sourcetracker() 11/30 23:00
2F:→ clickhere:S3並無需特別宣稱(理論上需要),class(model)就已將其 11/30 23:02
3F:→ clickhere:改定為該類別. predict 是個S3函數. 故自行定義 predict 11/30 23:03
4F:→ clickhere:該類別即可. 11/30 23:04
5F:→ clickhere:methods("predict")可以知道哪些S3類別可用 11/30 23:07
原來如此 source(../script/sourcetracker.R) 裡面有 predict.sourcetracker() plot.sourcetracker.fit() plot.sourcetracker.pie() plot.sourcetracker.bar() plot.sourcetracker.dist() 也就是說 , predict() 或 plot() 的 input 若先天上帶有 class 就會去找這些 function 來用 謝謝C大 ! ※ 編輯: gsuper 來自: 114.32.215.136 (12/01 14:24) 更正一下 sourcetracker() 跑出來的結果是變數 "model" class(model) 等於 "sourcetracker" model 套用 predict() 後 , 自動轉向 predict.sourcetracker() 也就是說原本的 predict 被暫時覆蓋掉 predict.sourcetracker() 輸出的結果是變數 results , class(results) 等於 "sourcetracker.fit" results 套用 plot() 後 , 自動轉向 plot.sourcetracker.fit() 邏輯到這邊就很清楚了 ※ 編輯: gsuper 來自: 114.32.215.136 (12/01 19:19)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP