Documentation for BaseModelWrapper
The PHOTONAI interface for implementing custom pipeline elements.
PHOTONAI works on top of the scikit-learn object API, see documentation.
Your class should overwrite the following definitions:
fit(data): learn or adjust to the data.
If it is an estimator, which means it has the ability to learn,
- it should implement
predict(data): using the learned model to generate prediction, - should inherit sklearn.base.BaseEstimator (see here),
- inherits get_params and set_params.
If it is an transformer, which means it preprocesses or prepares the data,
- it should implement
transform(data): applying the logic to the data to transform it, - should inherit from sklearn.base.TransformerMixin (see here),
- inherits fit_transform as a concatenation of both fit and transform,
- should inherit sklearn.base.BaseEstimator (see here)
- inherits get_params and set_params.
Prepare for hyperparameter optimization
PHOTONAI expects a definition for all parameters you want to optimize in the hyperparameter search in the
constructor stub, and to be addressable with the same name as class variable.
In this way you can define any parameter and it is automatically prepared for the hyperparameter search process.
See the scikit-learn object API documentation for more in depth information about the interface.
Source code in photonai/modelwrapper/base_model_wrapper.py
class BaseModelWrapper(BaseEstimator):
"""
The PHOTONAI interface for implementing custom pipeline elements.
PHOTONAI works on top of the scikit-learn object API,
[see documentation](http://scikit-learn.org/stable/developers/contributing.html#apis-of-scikit-learn-objects).
Your class should overwrite the following definitions:
- `fit(data)`: learn or adjust to the data.
If it is an estimator, which means it has the ability to learn,
- it should implement `predict(data)`: using the learned model to generate prediction,
- should inherit *sklearn.base.BaseEstimator* ([see here](
http://scikit-learn.org/stable/modules/generated/sklearn.base.BaseEstimator.html)),
- inherits *get_params* and *set_params*.
If it is an transformer, which means it preprocesses or prepares the data,
- it should implement `transform(data)`: applying the logic to the data to transform it,
- should inherit from *sklearn.base.TransformerMixin* ([see here](
http://scikit-learn.org/stable/modules/generated/sklearn.base.TransformerMixin.html)),
- inherits *fit_transform* as a concatenation of both fit and transform,
- should inherit *sklearn.base.BaseEstimator* ([see here](
http://scikit-learn.org/stable/modules/generated/sklearn.base.BaseEstimator.html))
- inherits *get_params* and *set_params*.
`Prepare for hyperparameter optimization`
PHOTONAI expects a `definition for all parameters` you want to optimize in the hyperparameter search in the
`constructor stub`, and to be addressable with the `same name as class variable`.
In this way you can define any parameter and it is automatically prepared for the hyperparameter search process.
See the [scikit-learn object API documentation](
http://scikit-learn.org/stable/developers/contributing.html#apis-of-scikit-learn-objects)
for more in depth information about the interface.
"""
def __init__(self):
pass
def fit(self, data: np.ndarray, targets: np.ndarray = None):
"""
Adjust the underlying model or method to the data.
Parameters:
data:
The input samples of shape [n_samples, n_original_features].
targets:
The input targets of shape [n_samples, 1].
Returns:
IMPORTANT, must return self!
"""
def predict(self, data: np.ndarray):
"""
Use the learned model to make predictions.
Parameters:
data:
The input samples of shape [n_samples, n_original_features].
"""
def transform(self, data: np.ndarray, targets: np.ndarray = None):
"""
Apply the method's logic to the data.
Parameters:
data:
The input samples of shape [n_samples, n_original_features].
targets:
The input targets of shape [n_samples, 1]. Not necessary.
"""
def get_params(self, deep: bool = True) -> dict:
"""
Get the models parameters.
Automatically implemented when inheriting from sklearn.base.BaseEstimator
Parameters:
deep:
If True, will return the parameters for this estimator and contained subobjects that are estimators.
Returns:
Parameter names mapped to their values.
"""
return super(BaseModelWrapper, self).get_params(deep=deep)
def set_params(self, **kwargs):
"""
Takes the given dictionary, with the keys being the variable name,
and sets the object's parameters to the given values.
Automatically implemented when inheriting from sklearn.base.BaseEstimator.
Parameters:
**kwargs: Estimator parameters.
"""
super(BaseModelWrapper, self).set_params(**kwargs)
fit(self, data, targets=None)
Adjust the underlying model or method to the data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data |
ndarray |
The input samples of shape [n_samples, n_original_features]. |
required |
targets |
ndarray |
The input targets of shape [n_samples, 1]. |
None |
Returns:
| Type | Description |
|---|---|
IMPORTANT, must return self! |
Source code in photonai/modelwrapper/base_model_wrapper.py
def fit(self, data: np.ndarray, targets: np.ndarray = None):
"""
Adjust the underlying model or method to the data.
Parameters:
data:
The input samples of shape [n_samples, n_original_features].
targets:
The input targets of shape [n_samples, 1].
Returns:
IMPORTANT, must return self!
"""
get_params(self, deep=True)
Get the models parameters. Automatically implemented when inheriting from sklearn.base.BaseEstimator
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
deep |
bool |
If True, will return the parameters for this estimator and contained subobjects that are estimators. |
True |
Returns:
| Type | Description |
|---|---|
dict |
Parameter names mapped to their values. |
Source code in photonai/modelwrapper/base_model_wrapper.py
def get_params(self, deep: bool = True) -> dict:
"""
Get the models parameters.
Automatically implemented when inheriting from sklearn.base.BaseEstimator
Parameters:
deep:
If True, will return the parameters for this estimator and contained subobjects that are estimators.
Returns:
Parameter names mapped to their values.
"""
return super(BaseModelWrapper, self).get_params(deep=deep)
predict(self, data)
Use the learned model to make predictions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data |
ndarray |
The input samples of shape [n_samples, n_original_features]. |
required |
Source code in photonai/modelwrapper/base_model_wrapper.py
def predict(self, data: np.ndarray):
"""
Use the learned model to make predictions.
Parameters:
data:
The input samples of shape [n_samples, n_original_features].
"""
set_params(self, **kwargs)
Takes the given dictionary, with the keys being the variable name, and sets the object's parameters to the given values. Automatically implemented when inheriting from sklearn.base.BaseEstimator.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs |
Estimator parameters. |
{} |
Source code in photonai/modelwrapper/base_model_wrapper.py
def set_params(self, **kwargs):
"""
Takes the given dictionary, with the keys being the variable name,
and sets the object's parameters to the given values.
Automatically implemented when inheriting from sklearn.base.BaseEstimator.
Parameters:
**kwargs: Estimator parameters.
"""
super(BaseModelWrapper, self).set_params(**kwargs)
transform(self, data, targets=None)
Apply the method's logic to the data.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data |
ndarray |
The input samples of shape [n_samples, n_original_features]. |
required |
targets |
ndarray |
The input targets of shape [n_samples, 1]. Not necessary. |
None |
Source code in photonai/modelwrapper/base_model_wrapper.py
def transform(self, data: np.ndarray, targets: np.ndarray = None):
"""
Apply the method's logic to the data.
Parameters:
data:
The input samples of shape [n_samples, n_original_features].
targets:
The input targets of shape [n_samples, 1]. Not necessary.
"""