Utility functions
def get_default_param_grid() -> list:
"""Create and return a default gird search param grid"""
lr_grid = [
{
"classifier": [LogisticRegression()],
"classifier__solver": ["lbfgs"],
"classifier__penalty": ["l2"],
"classifier__C": np.logspace(-2, 2, 5), # default=1.0
"classifier__max_iter": [1000, 5000, 10000], # default=100
},
{
"classifier": [LogisticRegression()],
"classifier__solver": ["liblinear"],
"classifier__penalty": ["l1", "l2"],
"classifier__C": np.logspace(-2, 2, 5),
"classifier__max_iter": [1000, 5000, 10000],
},
]
svm_grid = [
{
"classifier": [LinearSVC()],
"classifier__loss": ["hinge"], # default=squared_hinge
"classifier__penalty": ["l2"], # default=l2
"classifier__C": np.logspace(-2, 2, 5), # default=1.0
"classifier__max_iter": [10000, 20000], # default=1000
},
{
"classifier": [LinearSVC()],
"classifier__loss": ["squared_hinge"],
"classifier__penalty": ["l1", "l2"],
"classifier__C": np.logspace(-2, 2, 5),
"classifier__max_iter": [10000, 20000],
},
]
xgb_grid = [
{
"classifier": [XGBClassifier()],
# "classifier__gamma": (5, 10),
"classifier__learning_rate": np.linspace(0.03, 0.3, 4), # default 0.1
"classifier__max_depth": [3, 4, 5, 6], # default 6
"classifier__n_estimators": [100, 300], # default 100
# "classifier__subsample": (0.5, 1),
}
]
return [lr_grid, svm_grid, xgb_grid]