作者celestialgod (天)
看板R_Language
标题Re: [问题] optim function
时间Mon Oct 26 09:04:01 2015
※ 引述《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://webptt.com/cn.aspx?n=bbs/R_Language/M.1445821446.A.AAD.html
1F:推 buzz20374: 谢谢,不过还在想设初使值的意义,x1=-1.2,x2=2,不就 10/26 10:49
2F:→ buzz20374: 算出fr的值了吗?可是初使值设不同,答案也不同。 10/26 10:49
3F:推 buzz20374: 执行195次,我也不太了解。抱歉,比较笨。 10/26 11:03
195次就只是他在optimization过程中,fr被执行了195次,通常代表执行cost~~
好的演算法跟初始值通常有较低的cost
4F:→ Edster: 初始值意义你已经自己回答了。因为有local optimize的问题 10/26 11:04
5F:→ Edster: 所以初始值设定的不一样,会找到不同的最佳解 10/26 11:05
6F:→ Edster: 简单来说把你丢到台湾各处的山上,问你看到的山哪座最高 10/26 11:05
7F:→ Edster: 每丢一次你都会回答不同的山最高,差不多就是这个意思 10/26 11:06
8F:→ Edster: 最佳解能否翻过小区域最佳值,找到更好的最佳值 10/26 11:08
9F:→ Edster: 这是演算法和效率的问题. 可以想成是你的视力/体力的问题. 10/26 11:08
10F:→ Edster: 你爬到附近的最高峰之後,还有没有能力看到更远处的最高峰 10/26 11:09
11F:推 buzz20374: 感谢 10/26 11:11
另外,题外话,你说的搜寻范围在lower跟upper这两个地方设定
这两个用的演算法会稍微不同,你可以看method的解释
12F:推 Edster: www.jstatsoft.org/article/view/v060i06/v60i06.pdf 10/26 11:29
13F:→ Edster: 有兴趣可以看看UCLA教授写的这篇文章. 10/26 11:30
14F:→ Edster: 比较了R中各种最佳化的function 10/26 11:30
我以前用过其他最佳化套件, maxLik, bbmle 这两个我觉得都不错用
R内建的,我用没几次就放弃了~"~...
E大的这篇好丰富@@
※ 编辑: celestialgod (140.109.73.190), 10/26/2015 11:35:51