From e523698fcd251414b80b0e4514159c45834852f3 Mon Sep 17 00:00:00 2001 From: Dave Liu Date: Fri, 26 Apr 2019 01:22:11 -0700 Subject: [PATCH] Get rid of some warnings showing up in one of the example .ipynb (#756) * Specify value for CV to get rid of Future Warning Specifies value for cv parameter in BayesSearchCV to get rid of Future Warning: > FutureWarning: You should specify a value for 'cv' instead of relying on the default value. The default value will change from 3 to 5 in version 0.22. * added some parameters to remove warnings. Still some warnings, but not as many as before --- .../sklearn-gridsearchcv-replacement.ipynb | 140 +++++++++++++----- 1 file changed, 100 insertions(+), 40 deletions(-) diff --git a/examples/sklearn-gridsearchcv-replacement.ipynb b/examples/sklearn-gridsearchcv-replacement.ipynb index 7985ec07b..d946c9bbd 100644 --- a/examples/sklearn-gridsearchcv-replacement.ipynb +++ b/examples/sklearn-gridsearchcv-replacement.ipynb @@ -2,10 +2,7 @@ "cells": [ { "cell_type": "markdown", - "metadata": { - "deletable": true, - "editable": true - }, + "metadata": {}, "source": [ "# Scikit-learn hyperparameter search wrapper\n", "\n", @@ -14,10 +11,7 @@ }, { "cell_type": "markdown", - "metadata": { - "deletable": true, - "editable": true - }, + "metadata": {}, "source": [ "## Introduction\n", "\n", @@ -36,19 +30,15 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false, - "deletable": true, - "editable": true - }, + "execution_count": 1, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "val. score: 0.983667409057\n", - "test score: 0.982222222222\n" + "val. score: 0.9873793615441723\n", + "test score: 0.9888888888888889\n" ] } ], @@ -59,7 +49,7 @@ "from sklearn.model_selection import train_test_split\n", "\n", "X, y = load_digits(10, True)\n", - "X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.75, random_state=0)\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.75, test_size=.25, random_state=0)\n", "\n", "# log-uniform: understand as search over p = exp(x) by varying x\n", "opt = BayesSearchCV(\n", @@ -70,7 +60,8 @@ " 'degree': (1, 8), # integer valued parameter\n", " 'kernel': ['linear', 'poly', 'rbf'], # categorical parameter\n", " },\n", - " n_iter=32\n", + " n_iter=32,\n", + " cv=3\n", ")\n", "\n", "opt.fit(X_train, y_train)\n", @@ -81,10 +72,7 @@ }, { "cell_type": "markdown", - "metadata": { - "deletable": true, - "editable": true - }, + "metadata": {}, "source": [ "## Advanced example \n", "\n", @@ -93,18 +81,75 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": false, - "deletable": true, - "editable": true - }, + "execution_count": 2, + "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n", + "/Users/david.liu/.virtualenvs/dsmodels/lib/python3.7/site-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", + " \"the number of iterations.\", ConvergenceWarning)\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "val. score: 0.983667409057\ntest score: 0.982222222222\n" + "val. score: 0.9829250185597624\n", + "test score: 0.9822222222222222\n" ] } ], @@ -128,8 +173,10 @@ "\n", "# single categorical value of 'model' parameter is \n", "# sets the model class\n", + "# We will get ConvergenceWarnings because the problem is not well-conditioned.\n", + "# But that's fine, this is just an example.\n", "linsvc_search = {\n", - " 'model': [LinearSVC(max_iter=10000)],\n", + " 'model': [LinearSVC(max_iter=1000)],\n", " 'model__C': (1e-6, 1e+6, 'log-uniform'),\n", "}\n", "\n", @@ -145,6 +192,7 @@ "opt = BayesSearchCV(\n", " pipe,\n", " [(svc_search, 20), (linsvc_search, 16)], # (parameter space, # of evaluations)\n", + " cv=3\n", ")\n", "\n", "opt.fit(X_train, y_train)\n", @@ -168,23 +216,34 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": {}, + "execution_count": 3, + "metadata": { + "scrolled": false + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "best score: 0.94\nbest score: 0.94\nbest score: 0.98\nInterrupting!\n" + "best score: 0.98\n", + "Interrupting!\n" ] }, { "data": { "text/plain": [ - "BayesSearchCV(cv=None, error_score='raise',\n estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n max_iter=-1, probability=False, random_state=None, shrinking=True,\n tol=0.001, verbose=False),\n fit_params=None, iid=True, n_iter=10, n_jobs=1,\n optimizer_kwargs=None, pre_dispatch='2*n_jobs', random_state=None,\n refit=True, return_train_score=True, scoring=None,\n search_spaces={'C': (0.01, 100.0, 'log-uniform')}, verbose=0)" + "BayesSearchCV(cv=3, error_score='raise',\n", + " estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n", + " decision_function_shape='ovr', degree=3, gamma='scale', kernel='rbf',\n", + " max_iter=-1, probability=False, random_state=None, shrinking=True,\n", + " tol=0.001, verbose=False),\n", + " fit_params=None, iid=True, n_iter=10, n_jobs=1, n_points=1,\n", + " optimizer_kwargs=None, pre_dispatch='2*n_jobs', random_state=None,\n", + " refit=True, return_train_score=False, scoring=None,\n", + " search_spaces={'C': (0.01, 100.0, 'log-uniform')}, verbose=0)" ] }, - "execution_count": 11, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -198,9 +257,10 @@ "X, y = load_iris(True)\n", "\n", "searchcv = BayesSearchCV(\n", - " SVC(),\n", + " SVC(gamma='scale'),\n", " search_spaces={'C': (0.01, 100.0, 'log-uniform')},\n", - " n_iter=10\n", + " n_iter=10,\n", + " cv=3\n", ")\n", "\n", "\n", @@ -227,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -275,9 +335,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.5.2" + "version": "3.7.2" } }, "nbformat": 4, - "nbformat_minor": 0 + "nbformat_minor": 1 }