Sklearn


In [ ]:
from sklearn import cross_validation, datasets, grid_search, linear_model, metrics

import numpy as np
import pandas as pd

Генерация датасета


In [ ]:
iris = datasets.load_iris()

In [ ]:
train_data, test_data, train_labels, test_labels = cross_validation.train_test_split(iris.data, iris.target, 
                                                                                     test_size = 0.3,random_state = 0)

Задание модели


In [ ]:
classifier = linear_model.SGDClassifier(random_state = 0)

Генерация сетки


In [ ]:
classifier.get_params().keys()

In [ ]:
parameters_grid = {
    'loss' : ['hinge', 'log', 'squared_hinge', 'squared_loss'],
    'penalty' : ['l1', 'l2'],
    'n_iter' : range(5,10),
    'alpha' : np.linspace(0.0001, 0.001, num = 5),
}

In [ ]:
cv = cross_validation.StratifiedShuffleSplit(train_labels, n_iter = 10, test_size = 0.2, random_state = 0)

Подбор параметров и оценка качества


In [ ]:
grid_cv = grid_search.GridSearchCV(classifier, parameters_grid, scoring = 'accuracy', cv = cv)

In [ ]:
%%time
grid_cv.fit(train_data, train_labels)

In [ ]:
grid_cv.best_estimator_

In [ ]:
print grid_cv.best_score_
print grid_cv.best_params_

In [ ]:
grid_cv.grid_scores_[:10]

In [ ]:
randomized_grid_cv = grid_search.RandomizedSearchCV(classifier, parameters_grid, scoring = 'accuracy', cv = cv, n_iter = 20, 
                                                   random_state = 0)

In [ ]:
%%time
randomized_grid_cv.fit(train_data, train_labels)

In [ ]:
print randomized_grid_cv.best_score_
print randomized_grid_cv.best_params_