title: what does the option normalize = True in Lasso sklearn do?
body: <p>I have a  matrix where each column has  mean 0 and std 1  </p>
  
  <pre><code>In [67]: x_val.std(axis=0).min()
  Out[70]: 0.99999999999999922
  
  In [71]: x_val.std(axis=0).max()
  Out[71]: 1.0000000000000007
  
  In [72]: x_val.mean(axis=0).max()
  Out[72]: 1.1990408665951691e-16
  
  In [73]: x_val.mean(axis=0).min()
  Out[73]: -9.7144514654701197e-17
  </code></pre>
  
  <p>The number of non 0 coefficients changes if I use the normalize option</p>
  
  <pre><code>In [74]: l = Lasso(alpha=alpha_perc70).fit(x_val, y_val)
  
  In [81]: sum(l.coef_!=0)
  Out[83]: 47
  
  In [84]: l2 = Lasso(alpha=alpha_perc70, normalize=True).fit(x_val, y_val)
  
  In [93]: sum(l2.coef_!=0)
  Out[95]: 3
  </code></pre>
  
  <p>It seems to me that normalize just set the variance of each columns to 1. This is strange that the results change so much. My data has already variance=1. </p>
  
  <p>So what does normalize=T actually do?</p>