%matplotlib inline import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import load_iris from sklearn.cross_validation import train_test_split iris = load_iris() X, y = iris.data, iris.target X_train, X_test, y_train, y_test = train_test_split(X, y) from sklearn.grid_search import RandomizedSearchCV from scipy.stats import expon plt.hist([expon.rvs(scale=0.001) for x in xrange(10000)], bins=100, normed=True); from sklearn.pipeline import make_pipeline from sklearn.svm import SVC from sklearn.preprocessing import StandardScaler param_distributions = {'C': expon(), 'gamma': expon()} rs = RandomizedSearchCV(SVC(), param_distributions=param_distributions, n_iter=50) rs.fit(X_train, y_train) rs.best_params_ rs.best_score_ scores, Cs, gammas = zip(*[(score.mean_validation_score, score.parameters['C'], score.parameters['gamma']) for score in rs.grid_scores_]) plt.scatter(Cs, gammas, s=50, c=scores, linewidths=0) plt.xlabel("C") plt.ylabel("gamma") plt.scatter(np.log(Cs), np.log(gammas), s=50, c=scores, linewidths=0) plt.xlabel("C") plt.ylabel("gamma")