In [1]:
from sklearn.datasets import load_diabetes

diabetes = load_diabetes()
X = diabetes.data
Y = diabetes.target

In [16]:
from sklearn.linear_model import Ridge
ridge0 = Ridge(alpha=0).fit(X,Y)
p0 = pd.Series(np.hstack([ridge0.intercept_, ridge0.coef_]))
ridge1 = Ridge(alpha=1).fit(X,Y)
p1 = pd.Series(np.hstack([ridge1.intercept_, ridge1.coef_]))
ridge2 = Ridge(alpha=2).fit(X,Y)
p2 = pd.Series(np.hstack([ridge2.intercept_, ridge2.coef_]))
ridge3 = Ridge(alpha=5).fit(X,Y)
p3 = pd.Series(np.hstack([ridge3.intercept_, ridge3.coef_]))
ridge4 = Ridge(alpha=10).fit(X,Y)
p4 = pd.Series(np.hstack([ridge4.intercept_, ridge4.coef_]))
ridge5 = Ridge(alpha=50).fit(X,Y)
p5 = pd.Series(np.hstack([ridge5.intercept_, ridge5.coef_]))

In [17]:
df = pd.DataFrame([p0,p1,p2,p3,p4,p5]).T
df.columns = ["alpha0","alpha1","alpha2","alpha3","alpha4","alpha5"]

In [18]:
df


Out[18]:
alpha0 alpha1 alpha2 alpha3 alpha4 alpha5
0 152.133484 152.133484 152.133484 152.133484 152.133484 152.133484
1 -10.012198 29.465746 33.684368 28.273438 19.812822 5.527054
2 -239.819089 -83.154885 -41.040187 -9.316605 -0.918458 0.965857
3 519.839787 306.351627 223.029964 127.139552 75.416167 18.007491
4 324.390428 201.629434 152.203371 90.643162 55.025419 13.459991
5 -792.184162 5.909369 20.941211 25.396307 19.924600 6.092307
6 476.745838 -29.515927 -2.749722 14.038693 13.948686 4.865677
7 101.044570 -152.040465 -121.063689 -76.249206 -47.553816 -11.945849
8 177.064176 117.311715 103.717329 73.175098 48.259420 12.818657
9 751.279321 262.944995 195.099906 115.423085 70.144068 17.224806
10 67.625386 111.878718 99.467716 68.406750 44.213876 11.472156

In [19]:
from sklearn.linear_model import Lasso
Lasso0 = Lasso(alpha=0).fit(X,Y)
p0 = pd.Series(np.hstack([Lasso0.intercept_, Lasso0.coef_]))
Lasso1 = Lasso(alpha=1).fit(X,Y)
p1 = pd.Series(np.hstack([Lasso1.intercept_, Lasso1.coef_]))
Lasso2 = Lasso(alpha=2).fit(X,Y)
p2 = pd.Series(np.hstack([Lasso2.intercept_, Lasso2.coef_]))
Lasso3 = Lasso(alpha=5).fit(X,Y)
p3 = pd.Series(np.hstack([Lasso3.intercept_, Lasso3.coef_]))
Lasso4 = Lasso(alpha=10).fit(X,Y)
p4 = pd.Series(np.hstack([Lasso4.intercept_, Lasso4.coef_]))
Lasso5 = Lasso(alpha=50).fit(X,Y)
p5 = pd.Series(np.hstack([Lasso5.intercept_, Lasso5.coef_]))


/home/dockeruser/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:2: UserWarning: With alpha=0, this algorithm does not converge well. You are advised to use the LinearRegression estimator
  from ipykernel import kernelapp as app

In [20]:
df1 = pd.DataFrame([p0,p1,p2,p3,p4,p5]).T
df1.columns = ["alpha0","alpha1","alpha2","alpha3","alpha4","alpha5"]

In [21]:
df1


Out[21]:
alpha0 alpha1 alpha2 alpha3 alpha4 alpha5
0 152.133484 152.133484 152.133484 152.133484 152.133484 152.133484
1 -10.012198 0.000000 0.000000 0.000000 0.000000 0.000000
2 -239.819089 -0.000000 0.000000 0.000000 0.000000 0.000000
3 519.839787 367.701852 63.795721 0.000000 0.000000 0.000000
4 324.390428 6.301904 0.000000 0.000000 0.000000 0.000000
5 -792.184135 0.000000 0.000000 0.000000 0.000000 0.000000
6 476.745817 0.000000 0.000000 0.000000 0.000000 0.000000
7 101.044558 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
8 177.064173 0.000000 0.000000 0.000000 0.000000 0.000000
9 751.279311 307.605700 3.675710 0.000000 0.000000 0.000000
10 67.625386 0.000000 0.000000 0.000000 0.000000 0.000000

In [23]:
lasso = Lasso()
alphas, coefs, _ = lasso.path(X,Y, alphas=np.logspace(0,1,10))
df2 = pd.DataFrame(coefs, columns = alphas)
df2


Out[23]:
10.0 7.74263682681 5.99484250319 4.64158883361 3.5938136638 2.78255940221 2.15443469003 1.6681005372 1.29154966501 1.0
0 0.0 0.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.057438 0.359018
1 0.0 0.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
2 0.0 0.0 0.0 0.0 0.195080 0.542478 0.989810 1.565985 2.307328 3.259767
3 0.0 0.0 0.0 0.0 0.000000 0.161290 0.497900 0.931347 1.488779 2.204355
4 0.0 0.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.190822 0.528645
5 0.0 0.0 0.0 0.0 0.000000 0.000000 0.000000 0.000000 0.000000 0.250935
6 -0.0 -0.0 -0.0 -0.0 -0.000000 -0.038442 -0.339060 -0.725907 -1.223212 -1.861363
7 0.0 0.0 0.0 0.0 0.000000 0.132055 0.459565 0.880879 1.421836 2.114454
8 0.0 0.0 0.0 0.0 0.153186 0.488335 0.919695 1.475118 2.189260 3.105841
9 0.0 0.0 0.0 0.0 0.000000 0.006025 0.297197 0.671848 1.153108 1.769851

In [24]:
df2.T.plot(logx=True)
plt.show()



In [ ]: