Source code for ml_grid.model_classes.quadratic_discriminant_class

"""Defines the QuadraticDiscriminantAnalysis model class."""

from typing import Optional

import pandas as pd
from ml_grid.util import param_space
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
from ml_grid.util.global_params import global_parameters
from skopt.space import Categorical

print("Imported QuadraticDiscriminantAnalysis class")


[docs] class quadratic_discriminant_analysis_class: """QuadraticDiscriminantAnalysis with support for hyperparameter tuning.""" def __init__( self, X: Optional[pd.DataFrame] = None, y: Optional[pd.Series] = None, parameter_space_size: Optional[str] = None, ): """Initializes the quadratic_discriminant_analysis_class. Args: X (Optional[pd.DataFrame]): Feature matrix for training. Defaults to None. y (Optional[pd.Series]): Target vector for training. Defaults to None. parameter_space_size (Optional[str]): Size of the parameter space for optimization. Defaults to None. """ global_params = global_parameters
[docs] self.X = X
[docs] self.y = y
[docs] self.algorithm_implementation = QuadraticDiscriminantAnalysis()
[docs] self.method_name = "QuadraticDiscriminantAnalysis"
[docs] self.parameter_vector_space = param_space.ParamSpace(parameter_space_size)
if global_params.bayessearch: self.parameter_space = { "priors": Categorical([None]), # Categorical: single option, None "reg_param": self.parameter_vector_space.param_dict.get("log_small"), # Log-uniform between 1e-5 and 1e-2 "store_covariance": Categorical([False]), # Categorical: single option, False "tol": self.parameter_vector_space.param_dict.get("log_small"), # Log-uniform between 1e-5 and 1e-2 } else: self.parameter_space = { "priors": [None], "reg_param": self.parameter_vector_space.param_dict.get("log_small"), "store_covariance": [False], "tol": self.parameter_vector_space.param_dict.get("log_small"), } return None