Re: [問題] optim function

作者: celestialgod (天)   2015-10-26 09:04:01
※ 引述《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,通常都有一些相關訊息
作者: buzz20374   2015-10-26 10:49:00
謝謝,不過還在想設初使值的意義,x1=-1.2,x2=2,不就算出fr的值了嗎?可是初使值設不同,答案也不同。執行195次,我也不太了解。抱歉,比較笨。
作者: Edster (Edster)   2015-10-26 11:04:00
初始值意義你已經自己回答了。因為有local optimize的問題所以初始值設定的不一樣,會找到不同的最佳解簡單來說把你丟到台灣各處的山上,問你看到的山哪座最高每丟一次你都會回答不同的山最高,差不多就是這個意思最佳解能否翻過小區域最佳值,找到更好的最佳值這是演算法和效率的問題. 可以想成是你的視力/體力的問題.你爬到附近的最高峰之後,還有沒有能力看到更遠處的最高峰
作者: buzz20374   2015-10-26 11:11:00
感謝
作者: Edster (Edster)   2015-10-26 11:29:00
www.jstatsoft.org/article/view/v060i06/v60i06.pdf有興趣可以看看UCLA教授寫的這篇文章.比較了R中各種最佳化的function

Links booklink

Contact Us: admin [ a t ] ucptt.com