Skip to content

Customer Transformers Not Working #1360

Description

@habeeb3579

TPOT does not work with custom transformers. When I ran to optimization below, I got the warning that "Warning: Normalization2 is not available and will not be used by TPOT."

class Normalization2(BaseEstimator, TransformerMixin):
def init(self, method='minmax', feature_range=(0, 1)):
self.method = method
self.feature_range = feature_range
self.min_ = None
self.max_ = None

def fit(self, spectrum):
    if self.method == 'minmax':
        self.min_ = np.min(spectrum)
        self.max_ = np.max(spectrum)
    elif self.method == 'zscore':
        self.mean = np.mean(spectrum)
        self.std = np.std(spectrum)
    else:
        raise ValueError("Unsupported normalization method. Choose 'minmax' or 'zscore'.")
    return self

def transform(self, spectrum):
    if self.method == 'minmax':
        if self.min_ is None or self.max_ is None:
            raise ValueError("Normalization instance is not fitted yet.")
        range_min, range_max = self.feature_range
        return ((spectrum - self.min_) / (self.max_ - self.min_)) * (range_max - range_min) + range_min
    elif self.method == 'zscore':
        if self.mean is None or self.std is None:
            raise ValueError("Normalization instance is not fitted yet.")
        return (spectrum - self.mean) / self.std
        
 config = {
'Normalization2': {  # Wrapper for Normalization
    'method': ['minmax'],
    'feature_range': [(0, 1)],
},
'sklearn.linear_model.Ridge': {  # Replace PLSRegression with Ridge
    'alpha': [0.1, 1.0, 10.0],  # Regularization strength
    'solver': ['auto', 'svd', 'cholesky', 'lsqr', 'sag', 'saga'],  # Solvers to optimize
},

}

spot = TPOTRegressor(
generations=100,
population_size=100,
cv=3
config_dict=config,
verbosity=2,
n_jobs=-1,
max_eval_time_mins=10
)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions