Before running the final line of the code in the snippet below to fit the grid_search object, you are asked to perform the following tasks directly in the code:1. Modify the param_grid to include a new parameter: 'max_features' with values ranging from 1 to 4.2. Fit the grid_search to the training data.3. After fitting, extract and print the best parameter combination and the corresponding cross-validation score.Which of the following options correctly completes these tasks?from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split, GridSearchCVfrom sklearn.tree import DecisionTreeClassifier# Load the Iris datasetiris = load_iris()X = iris.datay = iris.target# Split the data into training and test setsX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)# Setup a basic decision tree classifierdt = DecisionTreeClassifier(random_state=42)# Define a parameter grid over which to optimise the decision treeparam_grid = { 'max_depth': [None, 10, 20, 30], 'min_samples_split': [2, 10, 20]}# Setup the GridSearchCVgrid_search = GridSearchCV(dt, param_grid, cv=5)param_grid.update({'max_features': [1, 2]})grid_search.fit(X_train, y_train)best_params = grid_search.best_params_print(f"Best parameters found: {best_params}, Score: {grid_search.best_score_}")param_grid['max_features'] = range(1, 5)grid_search.fit(X_train, y_train)print(f"Best Params: {grid_search.best_params_}, CV Score: {grid_search.best_score_}")param_grid['max_features'] = [1, 2, 3, 4]grid_search = GridSearchCV(dt, param_grid, cv=5)grid_search.fit(X_train, y_train)print(f"Optimal Parameters: {grid_search.best_params_}, CV Accuracy: {grid_search.best_score_}")param_grid = {'max_features': [1, 2, 3, 4]}grid_search.fit(X_train, y_train)print("Best Parameters:", grid_search.best_params_)print("Best Cross-validation Score:", grid_search.best_score_)
Question
Before running the final line of the code in the snippet below to fit the grid_search object, you are asked to perform the following tasks directly in the code:1. Modify the param_grid to include a new parameter: 'max_features' with values ranging from 1 to 4.2. Fit the grid_search to the training data.3. After fitting, extract and print the best parameter combination and the corresponding cross-validation score.Which of the following options correctly completes these tasks?from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_split, GridSearchCVfrom sklearn.tree import DecisionTreeClassifier# Load the Iris datasetiris = load_iris()X = iris.datay = iris.target# Split the data into training and test setsX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)# Setup a basic decision tree classifierdt = DecisionTreeClassifier(random_state=42)# Define a parameter grid over which to optimise the decision treeparam_grid = { 'max_depth': [None, 10, 20, 30], 'min_samples_split': [2, 10, 20]}# Setup the GridSearchCVgrid_search = GridSearchCV(dt, param_grid, cv=5)param_grid.update({'max_features': [1, 2]})grid_search.fit(X_train, y_train)best_params = grid_search.best_params_print(f"Best parameters found: {best_params}, Score: {grid_search.best_score_}")param_grid['max_features'] = range(1, 5)grid_search.fit(X_train, y_train)print(f"Best Params: {grid_search.best_params_}, CV Score: {grid_search.best_score_}")param_grid['max_features'] = [1, 2, 3, 4]grid_search = GridSearchCV(dt, param_grid, cv=5)grid_search.fit(X_train, y_train)print(f"Optimal Parameters: {grid_search.best_params_}, CV Accuracy: {grid_search.best_score_}")param_grid = {'max_features': [1, 2, 3, 4]}grid_search.fit(X_train, y_train)print("Best Parameters:", grid_search.best_params_)print("Best Cross-validation Score:", grid_search.best_score_)
Solution
The correct code to complete these tasks is:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.tree import DecisionTreeClassifier
# Load the Iris dataset
iris = load_iris()
X = iris.data
y = iris.target
# Split the data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
# Setup a basic decision tree classifier
dt = DecisionTreeClassifier(random_state=42)
# Define a parameter grid over which to optimise the decision tree
param_grid = { 'max_depth': [None, 10, 20, 30], 'min_samples_split': [2, 10, 20]}
# Add 'max_features' to the parameter grid
param_grid['max_features'] = range(1, 5)
# Setup the GridSearchCV
grid_search = GridSearchCV(dt, param_grid, cv=5)
# Fit the grid_search to the training data
grid_search.fit(X_train, y_train)
# After fitting, extract and print the best parameter combination and the corresponding cross-validation score
print(f"Best Params: {grid_search.best_params_}, CV Score: {grid_search.best_score_}")
This code first adds the 'max_features' parameter to the parameter grid with values ranging from 1 to 4. Then it fits the grid_search object to the training data. Finally, it prints the best parameter combination found by the grid search and the corresponding cross-validation score.
Similar Questions
What is the best value of the parameter 'C' for the SVC according to the grid search? Modify the code to print the best parameter.from sklearn.datasets import load_digitsfrom sklearn.model_selection import GridSearchCVfrom sklearn.svm import SVCimport numpy as np# Load a datasetdigits = load_digits()X = digits.datay = digits.target# Initialise an SVC (Support Vector Classifier) with a linear kernelsvm = SVC(kernel='linear')# Define parameter range for C (regularisation parameter)param_grid = {'C': np.logspace(-3, 3, 7)}# Setup the grid search with cross-validationgrid_search = GridSearchCV(svm, param_grid, cv=5, scoring='accuracy')# Fit grid searchgrid_search.fit(X, y)# insert code here
Write a function that returns the best hyperperameters for a given model (i.e. the GridSearchCV).Function specifications:Should take in an sklearn GridSearchCV object.Should return a dictionary of optimal parameters for the given model.
How to import GridSearchCV?Review Laterfrom sklearn.model_selection import GridSearchCVfrom sklearn import GridSearchCVfrom sklearn.model import GridSearchCVfrom sklearn.linear_model import GridSearchCV
What is the primary purpose of the GridSearchCV() method?1 pointTo split your data into folds, then iterate over the folds to train and test your model.To determine the appropriate order of a model.To help select appropriate hyperparameter values.To determine if you’ve underfit or overfit your data.
Question 9Which of the following statements about GridSearchCV is/are True?1 pointGridSearchCV scans over a dictionary of parameters.GridSearchCV finds the hyperparameter set that has the best out-of-sample score.GridSearchCV retrains on all data with the "best" hyper-parameters.All of the above are True.
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.