我很難理解如果我使用像x <- task. 例如,這是我所做的:
- 我有一個任務、學習者和重采樣的串列,我將它們結合起來進行基準測驗。當我手動匹配時,我的任務串列由同一任務的多次重復組成,例如我的串列的第二個和第三個條目是相同的。所以,我可以理解以下幾行中發生的事情:

這是可以理解的。當我參考同一個物件時,我的串列中的第三個條目必須隨著我操作第二個條目而改變(是的,它們是同一個物件)
- 現在,我使用此串列生成基準設計并執行重采樣:
design = data.table(
task = list_of_tasks,
learner = list_of_learners,
resampling = list_of_resamplings
)
bmr = benchmark(design)
tab = bmr$aggregate(c(msr("classif.acc")))
結果tab有一列包含我可以檢查和操作的重采樣結果。這些重采樣結果包括我的原始任務(至少這是我的理解)。操作“重采樣結果中的任務”與步驟 1 完全相同,并且具有相同的效果(同樣,這并不奇怪):

- 但是現在,這里發生了什么(我接下來執行以下幾行)?似乎“重采樣結果中的任務”是第 2 行和第 3 行的相同物件,但不在原始串列中:

似乎有什么我想念的。但我怎么能理解這一點呢?
uj5u.com熱心網友回復:
任務、學習器和重采樣在呼叫時被克隆,benchmark()即創建每個物件的副本。中的條目design和tab不指向同一個物件在記憶體中。因此,改變tab$resample_result[[2]]$task不會改變list_of_tasks[[2]]。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/366838.html
