Thanks. You mentioned that I could "[add] positive to LassoCV and [pass] 
it to the Lasso estimators used in the cross-val." In the directory of 
my own installation of scikit-learn, I modified 
sklearn/linear_model/coordinate_descent.py to include "positive=False" 
to the parameter list of __init__ for the classes LassoCV, ElasticNetCV, 
and LinearModelCV, and added "self.positive=positive" in the body of the 
__init__ methods. However, calling LassoCV("positive=True", cv=20) still 
gives me the error "TypeError: __init__() got an unexpected keyword 
argument 'positive'".

I appreciate your patience with me. I have been programming in Python 
for only a few months and am no expert in machine learning. I imagine 
that I'm overlooking or misunderstanding some things that are obvious to 
those with more experience.

I notice that Lasso inherits from ElasticNet, and that ElasticNet 
includes the "positive" option, although some of the documentation for 
ElasticNet doesn't seem to reflect this. I imagine that this means it 
would be at least as straightforward for me to add the "positive" option 
to ElasticNetCV as to LassoCV. ElasticNetCV may be even better for my 
problem than LassoCV, since I expect many of my regressors to be 
correlated.

I'm using these regularized regression methods as part of an iterative 
solver for non-negative canonical correlation. CCA can be done by 
finding w that minimizes ||Yv-Xw||^2, then scaling w by ||Xw||, then 
doing the same for v, and so on back and forth until convergence. Lasso 
and ElasticNet can be used for the minimization step. I'm realizing, 
however, that the objective function I need to minimize will require an 
additional quadratic term to enforce the orthogonality of each 
projection direction to all previous directions. These methods from 
scikit-learn could give me the first pair of canonical variables, but if 
I want to get subsequent ones (and I do) I may have to use a more 
general-purpose optimization library like scipy.optimize and define my 
own objective function.


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to