From rgentlem at fhcrc.org  Fri Aug  8 15:28:16 2008
From: rgentlem at fhcrc.org (Robert Gentleman)
Date: Fri, 08 Aug 2008 06:28:16 -0700
Subject: [Rd] Suggestion for the optimization code
In-Reply-To: <489C4695.7090305@stats.uwo.ca>
References: <489C4293.2080806@epfl.ch> <489C4695.7090305@stats.uwo.ca>
Message-ID: <489C49F0.6090603@fhcrc.org>



Duncan Murdoch wrote:
> On 8/8/2008 8:56 AM, Mathieu Ribatet wrote:
>>     Dear list,
>>
>> Here's a suggestion about the different optimization code. There are 
>> several optimization procedures in the base package (optim, optimize, 
>> nlm, nlminb, ..). However, the output of these functions are slightly 
>> different. For instance,
>>
>>    1. optim returns a list with arguments par (the estimates), value the
>>       minimum (maxima) of the objective function, convergence (optim
>>       .convergence)
>>    2. optimize returns a list with arguments minimum (or maximum) giving
>>       the estimates, objective the value of the obj. function
>>    3. nlm returns a list with arguments minimum giving the minimum of
>>       the obj. function, minimum the estimates, code the optim. 
>> convergence
>>    4. nlminb returns a list with arguments par (the estimates),
>>       objective, convergence (conv. code), evaluations
>>
>> Furthermore, optim keeps the names of the parameters while nlm, nlminb 
>> don't.
>> s
>> I believe it would be nice if all these optimizers have a kind of 
>> homogenized output. This will help in writing functions that can call 
>> different optimizers. Obviously, we can write our own function that 
>> homogenized the output after calling the optimizer, but I still 
>> believe this will be more user-friendly.
> 
> Unfortunately, changing the names within the return value would break a 
> lot of existing uses of those functions.  Writing a wrapper to 
> homogenize the output is probably the right thing to do.

   And potentially to harmonize inputs. The MLInterfaces package 
(Bioconductor) has done this for many machine learning algorithms, 
should you want an example to look at.

   Robert


> 
> Duncan Murdoch
> 
>> Do you think this is a reasonable feature to implement - despite it 
>> isn't an important point?
>> Best,
>> Mathieu
>>
>> * BTW, if this is relevant, I could try to do it.
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 

-- 
Robert Gentleman, PhD
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M2-B876
PO Box 19024
Seattle, Washington 98109-1024
206-667-7700
rgentlem at fhcrc.org



[Rd] Suggestion for the optimization code
Robert Gentleman