In [ ]:
from sklearn.datasets import load_iris
from sklearn.feature_selection import RFE
from sklearn.grid_search import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import StratifiedKFold

iris = load_iris()
X, y = iris.data, iris.target

rfe = RFE(LogisticRegression(random_state=0))
param_grid = {'n_features_to_select': range(1, 5)}
grid = GridSearchCV(rfe, param_grid, cv=StratifiedKFold(y))

In [ ]:
%%timeit
grid.fit(X, y)

In [ ]:
grid.best_score_

In [ ]:
from sklearn.feature_selection import RFECV
rfecv = RFECV(LogisticRegression(random_state=0), cv=StratifiedKFold(y))

In [ ]:
%%timeit
rfecv.fit(X, y)

In [ ]:
rfecv.grid_scores_

In [ ]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

from sklearn import linear_model
from sklearn import datasets

diabetes = datasets.load_diabetes()
X = diabetes.data
y = diabetes.target

print("Computing regularization path using the LARS ...")
alphas, _, coefs = linear_model.lars_path(X, y, method='lasso', verbose=True)

xx = np.sum(np.abs(coefs.T), axis=1)
xx /= xx[-1]

plt.plot(xx, coefs.T)
ymin, ymax = plt.ylim()
plt.vlines(xx, ymin, ymax, linestyle='dashed')
plt.xlabel('|coef| / max|coef|')
plt.ylabel('Coefficients')
plt.title('LASSO Path')
plt.axis('tight')
plt.show()

In [ ]:
from sklearn.cross_validation import train_test_split

In [ ]:
X_train, X_test, y_train, y_test = train_test_split(X, y)
grid_search = GridSearchCV(linear_model.LassoLars(), param_grid={'alpha': np.logspace(-5, 3)})

In [ ]:
%%timeit
grid_search.fit(X, y)

In [ ]:
print(grid_search.best_params_)
print(grid_search.score(X_test, y_test))

In [ ]:
lasso = linear_model.LassoLarsCV()

In [ ]:
%%timeit
lasso.fit(X, y)

In [ ]:
print(lasso.alpha)
print(lasso.score(X_test, y_test))

In [ ]: