Return-Path: X-Original-To: apmail-commons-dev-archive@www.apache.org Delivered-To: apmail-commons-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 5E90BE394 for ; Fri, 28 Dec 2012 15:56:29 +0000 (UTC) Received: (qmail 38300 invoked by uid 500); 28 Dec 2012 15:56:28 -0000 Delivered-To: apmail-commons-dev-archive@commons.apache.org Received: (qmail 38166 invoked by uid 500); 28 Dec 2012 15:56:28 -0000 Mailing-List: contact dev-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Commons Developers List" Delivered-To: mailing list dev@commons.apache.org Received: (qmail 38158 invoked by uid 99); 28 Dec 2012 15:56:28 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Dec 2012 15:56:28 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of kberlin@gmail.com designates 209.85.212.43 as permitted sender) Received: from [209.85.212.43] (HELO mail-vb0-f43.google.com) (209.85.212.43) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 28 Dec 2012 15:56:21 +0000 Received: by mail-vb0-f43.google.com with SMTP id fs19so11054992vbb.30 for ; Fri, 28 Dec 2012 07:56:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; bh=Y40de+z3IhetfH2pSEX3HuJfgUq0QF/AXouxY8xdsUU=; b=jrUI+au5uOSKkx5AfzZPjw4WvNri3vgmbEq6gvgsi+Ezge+3HyRoju1dyc+7Nc9AEa Mc8DmqO1UIXts9sOXjF1Su49zq/PU3cOIIy1WN6P+FWLkBpcI2wTM3DfGHdJ/IIHQhQQ Z3xTP0yX460U0BGvh8eqVEb6g72PnU1d27lL9kQH2fDI/KWf+1T1NcjaEindgBtQi23N 5Y6d2baDCGO93L95ziFQov+Q8XX9sGgc2lm6nerjVyh7szTYbERXy/g5IEN4i2CAPwGu PTEzYOMxaVCGt6zMBbIGAyqkVb/bqRP5KKu7Gv4Ny7+dm57aXPk2bSgbBnmmfzpmdGe8 88QQ== X-Received: by 10.220.231.65 with SMTP id jp1mr50773168vcb.30.1356710159965; Fri, 28 Dec 2012 07:55:59 -0800 (PST) Received: from [192.168.1.151] (pool-173-79-236-4.washdc.fios.verizon.net. [173.79.236.4]) by mx.google.com with ESMTPS id j5sm29821659vdi.19.2012.12.28.07.55.59 (version=SSLv3 cipher=OTHER); Fri, 28 Dec 2012 07:55:59 -0800 (PST) Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: [math] major problem with new released version 3.1 From: Konstantin Berlin In-Reply-To: <50DDBF6B.4040101@spaceroots.org> Date: Fri, 28 Dec 2012 10:55:58 -0500 Content-Transfer-Encoding: quoted-printable Message-Id: <71EE68D1-669E-4B87-9460-D43005A99A35@gmail.com> References: <50DDA635.8080908@spaceroots.org> <50DDBF6B.4040101@spaceroots.org> To: "Commons Developers List" X-Mailer: Apple Mail (2.1499) X-Virus-Checked: Checked by ClamAV on apache.org Luc, Agreed. Dimitri brought out a good point about correlated errors that I = didn't think about. All these cases can be handled by user modifying = his/her input, but it would be nice to think about how this can be = supported in the future. I think this problem showed up for two general = reasons, which I brought out before. 1) We are not testing our optimization classes on large datasets. 2) The linear algebra framework should be used internally, that way we = can leverage sparse matrix operations.=20 -Konstantin On Dec 28, 2012, at 10:48 AM, Luc Maisonobe wrote: > Le 28/12/2012 16:08, Dimitri Pourbaix a =E9crit : >> Luc, >>=20 >>> However, it is also possible to set a non-diagonal weight matrix, = and >>> one class (AbstractLeastSquaresOptimizer) performs an eigen = dcomposition >>> on the matrix to extract its square root. I don't know any use case = for >>> this, but it has been set up this way, so I guess someone has a use = for >>> non-diagonal weights. >>=20 >> Such a situation occurs when observations are correlated. That is >> actually the most general expression for a least square problem. >>=20 >>> I wonder if I should simply add this as is or if we should rather = remove >>> the non-diagonal weights feature and support only vector weights. >>=20 >> Even if a vector of weights is convenient, it would only cover a = subset >> of situations. However, even a vector of weights is not needed if = both >> the models and the observations are pre-multiplied by the square root >> of their weight. By the way, I remind you that those weights already >> caused some bugs in the 2.0 release. >>=20 >> Personnally, I could live with a vector form. >=20 > So in order to make sure I understand your point, you would be OK if I > deprecate the non-diagonal weights, in which case users needing this > would have to implement it themselves by premultiplication (as both = you > and Konstantin seem to propose)? >=20 >>=20 >> As a more general comment, I find it amazing that all the +1 for the >> release were only concerned by the compliance with (commons) rules, >> configuration files, ... Just 4 days after the release, you suddenly >> figure out that a user is in trouble and you want a quick fix. Maybe >> such a test would have been need BEFORE the release! >=20 > Sure, but for the record the feature was also a last minute change. = This > was discussed on the list, and the final decision was to add this > feature despite the release was close. No wonder we failed to test it > thoroughsly. >=20 > We don't expect our releases to be perfect. We do our best, with the > resources we have. >=20 >>=20 >> Regards, >> Dim. >=20 >=20 > Le 28/12/2012 16:13, Konstantin Berlin a =E9crit : >> Hi, >>=20 >> I am not clear on the use of weights in a non-least squares problem >> is. In a least-squares problem the weights can simply be taken in by >> the user in their input function. So the weights option is a >> convenience feature, any non-standard matrix weights could be >> programmed in by the user, if they need to. I have a hard time >> imagining a case when the weights are non-diagnal. I think your idea >> is good and you should go on with it. The quadratic memory scaling >> with the number of data points is not acceptable. >=20 > Thanks Konstantin. So if Dimitri confirm I understood his point > correctly, I will proceed with deprecating the Weight class and > introduce a WeightVector class, understanding it is a convenience > feature suited for simple non-correlated observations. >=20 >>=20 >> -Konstantin >=20 > best regards, > Luc >=20 > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org > For additional commands, e-mail: dev-help@commons.apache.org >=20 --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org