看板 R_Language 關於我們 聯絡資訊
※ 引述《buzz20374 ()》之銘言: : : - 問題: 當你想要問問題時,請使用這個類別 : : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : 請把以下不需要的部份刪除 : 新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : 請簡略描述你所要做的事情,或是這個程式的目的 : 想請教optim function的問題。?optim裡面的一個例子: : ## Rosenbrock Banana function : fr<-function(x){ : x1<-x[1] : x2<-x[2] : 100*(x2-x1*x1)^2+(1-x1)^2 : } : optim(c(-1.2,2),fr) : 這裡我就想了很久,不太懂, : 第一個argument是par:initial values for the parameters to be optimized over 你要先把fr看懂,他的x是向量 從裡面可以看得出來為長度二的向量, x[1], x[2]分別assign到x1, x2 c(-1.2,2)是x1跟x2的初始值 : 但我不太懂 c(-1.2,2)代表要找值的區間嗎? : 跑出來的結果也看不太懂: : >optim(c(-1.2,2),fr) : $par : [1] 1.000260 1.000506 最小值的解 : $value : [1] 8.825241e-08 最小值 : $counts : function gradient : 195 NA number of function evaluation (fr的執行次數) gradient 你沒提供所以沒有值 : $convergence : [1] 0 收斂情況編碼,詳細的在optim下方 : $message : NULL 如果非0,通常都有一些相關訊息 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.190 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1445821446.A.AAD.html
buzz20374: 謝謝,不過還在想設初使值的意義,x1=-1.2,x2=2,不就 10/26 10:49
buzz20374: 算出fr的值了嗎?可是初使值設不同,答案也不同。 10/26 10:49
buzz20374: 執行195次,我也不太了解。抱歉,比較笨。 10/26 11:03
195次就只是他在optimization過程中,fr被執行了195次,通常代表執行cost~~ 好的演算法跟初始值通常有較低的cost
Edster: 初始值意義你已經自己回答了。因為有local optimize的問題 10/26 11:04
Edster: 所以初始值設定的不一樣,會找到不同的最佳解 10/26 11:05
Edster: 簡單來說把你丟到台灣各處的山上,問你看到的山哪座最高 10/26 11:05
Edster: 每丟一次你都會回答不同的山最高,差不多就是這個意思 10/26 11:06
Edster: 最佳解能否翻過小區域最佳值,找到更好的最佳值 10/26 11:08
Edster: 這是演算法和效率的問題. 可以想成是你的視力/體力的問題. 10/26 11:08
Edster: 你爬到附近的最高峰之後,還有沒有能力看到更遠處的最高峰 10/26 11:09
buzz20374: 感謝 10/26 11:11
另外,題外話,你說的搜尋範圍在lower跟upper這兩個地方設定 這兩個用的演算法會稍微不同,你可以看method的解釋
Edster: www.jstatsoft.org/article/view/v060i06/v60i06.pdf 10/26 11:29
Edster: 有興趣可以看看UCLA教授寫的這篇文章. 10/26 11:30
Edster: 比較了R中各種最佳化的function 10/26 11:30
我以前用過其他最佳化套件, maxLik, bbmle 這兩個我覺得都不錯用 R內建的,我用沒幾次就放棄了~"~... E大的這篇好豐富@@ ※ 編輯: celestialgod (140.109.73.190), 10/26/2015 11:35:51