maml.base package
Define abstract base classes.
class maml.base.BaseDataSource()
Bases: object
Abstract base class for a data source.
abstract get(*args, **kwargs)
Get data from sources.
class maml.base.BaseDescriber(**kwargs)
Bases: BaseEstimator
, TransformerMixin
, MSONable
Base class for a Describer. A describers converts an object to a descriptor, typically a numerical representation useful for machine learning. The output for the describers can be a single DataFrame/numpy.ndarray or a list of DataFrame/numpy.ndarray.
abc_impl( = <_abc.abc_data object )
_is_multi_output()
sklearn_auto_wrap_output_keys( = {‘transform’_ )
clear_cache()
Clear cache.
property feature_dim()
Feature dimension, useful when certain models need to specify the feature dimension, e.g., MLP models.
fit(x: Any, y: Any | None = None)
Place holder for fit API.
- Parameters
- x – Any inputs
- y – Any outputs
Returns: self
transform(objs: list[Any])
Transform a list of objs. If the return data is DataFrame, use df.xs(index, level=’input_index’) to get the result for the i-th object.
- Parameters objs (list) – A list of objects.
- Returns One or a list of pandas data frame/numpy ndarray
transform_one(obj: Any)
Transform an object.
class maml.base.BaseModel(model, describer: BaseDescriber | None = None, **kwargs)
Bases: object
Abstract Base class for a Model. Basically, it usually wraps around a deep learning package, e.g., the Sequential Model in Keras, but provides for transparent conversion of arbitrary input and outputs.
_predict(features: ndarray, **kwargs)
Predict the values given a set of inputs based on fitted models.
- Parameters features (np.ndarray) – array-like input features.
- Returns List of output objects.
fit(features: list | np.ndarray, targets: list | np.ndarray | None = None, val_features: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
- Parameters
- features (list* or *np.ndarray) – Numerical input feature list or numpy array with dim (m, n) where m is the number of data and n is the feature dimension.
- targets (list* or *np.ndarray) – Numerical output target list, or numpy array with dim (m, ).
- val_features (list* or *np.ndarray) – validation features
- val_targets (list* or *np.ndarray) – validation targets.
- Returns self
predict_objs(objs: list | np.ndarray)
Predict the values given a set of objects. Usually Pymatgen
Structure objects.
train(objs: list | np.ndarray, targets: list | np.ndarray | None = None, val_objs: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
Train the models from object, target pairs.
- Parameters
- objs (list* of *objects) – List of objects
- targets (list) – list of float or np.ndarray
- val_objs (list* of *objects) – list of validation objects
- val_targets (list) – list of validation targets
- **kwargs –
Returns: self
class maml.base.DummyDescriber(**kwargs)
Bases: BaseDescriber
Dummy Describer that does nothing.
abc_impl( = <_abc.abc_data object )
sklearn_auto_wrap_output_keys( = {‘transform’_ )
transform_one(obj: Any)
Does nothing but return the original features.
- Parameters obj – Any inputs
Returns: Any outputs
class maml.base.KerasModel(model, describer: BaseDescriber | None = None, **kwargs)
Bases: BaseModel
, KerasMixin
MAML models with keras models as estimators.
static _get_validation_data(val_features, val_targets, **val_kwargs)
construct validation data, the default is just returning a list of val_features and val_targets.
fit(features: list | np.ndarray, targets: list | np.ndarray | None = None, val_features: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
- Parameters
- features (list* or *np.ndarray) – Numerical input feature list or numpy array with dim (m, n) where m is the number of data and n is the feature dimension.
- targets (list* or *np.ndarray) – Numerical output target list, or numpy array with dim (m, ).
- val_features (list* or *np.ndarray) – validation features
- val_targets (list* or *np.ndarray) – validation targets.
- Returns self
class maml.base.SKLModel(model, describer: BaseDescriber | None = None, **kwargs)
Bases: BaseModel
, SklearnMixin
MAML models with sklearn models as estimator.
class maml.base.SequentialDescriber(describers: list, **kwargs)
Bases: Pipeline
A thin wrapper of sklearn Pipeline.
abc_impl( = <_abc.abc_data object )
steps(: List[Any )
class maml.base.TargetScalerMixin(*args, **kwargs)
Bases: object
Mixin class for models with target scaler.
predict_objs(objs: list | np.ndarray)
Predict the values given a set of objects. Usually Pymatgen
Structure objects.
train(objs: list | np.ndarray, targets: list | np.ndarray | None = None, val_objs: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
Train the models from object, target pairs.
- Parameters
- objs (list* of *objects) – List of objects
- targets (list) – list of float or np.ndarray
- val_objs (list* of *objects) – list of validation objects
- val_targets (list) – list of validation targets
- **kwargs –
Returns: self
maml.base.describer_type(dtype: str)
Decorate to set describers class type.
- Parameters dtype (str) – describers type, e.g., site, composition, structure etc.
- Returns wrapped class
maml.base.get_feature_batch(fb_name: str | Callable | None = None)
Providing a feature batch name, returning the function callable :param fb_name: name of the feature batch function :type fb_name: str
Returns: callable feature batch function.
maml.base.is_keras_model(model: BaseModel)
Check whether the model is keras :param model: model :type model: BaseModel
Returns: bool.
maml.base.is_sklearn_model(model: BaseModel)
Check whether the model is sklearn :param model: model :type model: BaseModel
Returns: bool.
maml.base._data module
MAML data base classes.
class maml.base._data.BaseDataSource()
Bases: object
Abstract base class for a data source.
abstract get(*args, **kwargs)
Get data from sources.
maml.base._describer module
MAML describers base classes.
class maml.base._describer.BaseDescriber(**kwargs)
Bases: BaseEstimator
, TransformerMixin
, MSONable
Base class for a Describer. A describers converts an object to a descriptor, typically a numerical representation useful for machine learning. The output for the describers can be a single DataFrame/numpy.ndarray or a list of DataFrame/numpy.ndarray.
abc_impl( = <_abc.abc_data object )
_is_multi_output()
sklearn_auto_wrap_output_keys( = {‘transform’_ )
clear_cache()
Clear cache.
property feature_dim()
Feature dimension, useful when certain models need to specify the feature dimension, e.g., MLP models.
fit(x: Any, y: Any | None = None)
Place holder for fit API.
- Parameters
- x – Any inputs
- y – Any outputs
Returns: self
transform(objs: list[Any])
Transform a list of objs. If the return data is DataFrame, use df.xs(index, level=’input_index’) to get the result for the i-th object.
- Parameters objs (list) – A list of objects.
- Returns One or a list of pandas data frame/numpy ndarray
transform_one(obj: Any)
Transform an object.
class maml.base._describer.DummyDescriber(**kwargs)
Bases: BaseDescriber
Dummy Describer that does nothing.
abc_impl( = <_abc.abc_data object )
sklearn_auto_wrap_output_keys( = {‘transform’_ )
transform_one(obj: Any)
Does nothing but return the original features.
- Parameters obj – Any inputs
Returns: Any outputs
class maml.base._describer.SequentialDescriber(describers: list, **kwargs)
Bases: Pipeline
A thin wrapper of sklearn Pipeline.
abc_impl( = <_abc.abc_data object )
steps(: List[Any )
maml.base._describer._transform_one(describer: BaseDescriber, obj: Any)
A wrapper to make a pure function.
- Parameters describer (BaseDescriber) – a describers
- Returns np.ndarray
maml.base._describer.describer_type(dtype: str)
Decorate to set describers class type.
- Parameters dtype (str) – describers type, e.g., site, composition, structure etc.
- Returns wrapped class
maml.base._feature_batch module
Batch a list of features output by describers.transform method.
maml.base._feature_batch.get_feature_batch(fb_name: str | Callable | None = None)
Providing a feature batch name, returning the function callable :param fb_name: name of the feature batch function :type fb_name: str
Returns: callable feature batch function.
maml.base._feature_batch.no_action(features: list[Any])
Return original feature lists.
maml.base._feature_batch.pandas_concat(features: list[pandas.core.frame.DataFrame])
Concatenate a list of pandas dataframe into a single one :param features: list of pandas dataframe. :type features: list
Returns: concatenated pandas dataframe
maml.base._feature_batch.stack_first_dim(features: list[numpy.ndarray])
Stack the first dimension. If the original features are a list of nxm array, the stacked features will be lxnxm, where l is the number of entries in the list :param features: list of numpy array features. :type features: list
Returns: stacked features
maml.base._feature_batch.stack_padded(features: list[numpy.ndarray])
Stack the first dimension. If the original features are a list of nxm array, the stacked features will be lxnxm, where l is the number of entries in the list :param features: list of numpy array features. :type features: list
Returns: stacked features
maml.base._mixin module
Model mixins.
class maml.base._mixin.TargetScalerMixin(*args, **kwargs)
Bases: object
Mixin class for models with target scaler.
predict_objs(objs: list | np.ndarray)
Predict the values given a set of objects. Usually Pymatgen
Structure objects.
train(objs: list | np.ndarray, targets: list | np.ndarray | None = None, val_objs: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
Train the models from object, target pairs.
- Parameters
- objs (list* of *objects) – List of objects
- targets (list) – list of float or np.ndarray
- val_objs (list* of *objects) – list of validation objects
- val_targets (list) – list of validation targets
- **kwargs –
Returns: self
maml.base._model module
MAML models base classes.
class maml.base._model.BaseModel(model, describer: BaseDescriber | None = None, **kwargs)
Bases: object
Abstract Base class for a Model. Basically, it usually wraps around a deep learning package, e.g., the Sequential Model in Keras, but provides for transparent conversion of arbitrary input and outputs.
_predict(features: ndarray, **kwargs)
Predict the values given a set of inputs based on fitted models.
- Parameters features (np.ndarray) – array-like input features.
- Returns List of output objects.
fit(features: list | np.ndarray, targets: list | np.ndarray | None = None, val_features: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
- Parameters
- features (list* or *np.ndarray) – Numerical input feature list or numpy array with dim (m, n) where m is the number of data and n is the feature dimension.
- targets (list* or *np.ndarray) – Numerical output target list, or numpy array with dim (m, ).
- val_features (list* or *np.ndarray) – validation features
- val_targets (list* or *np.ndarray) – validation targets.
- Returns self
predict_objs(objs: list | np.ndarray)
Predict the values given a set of objects. Usually Pymatgen
Structure objects.
train(objs: list | np.ndarray, targets: list | np.ndarray | None = None, val_objs: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
Train the models from object, target pairs.
- Parameters
- objs (list* of *objects) – List of objects
- targets (list) – list of float or np.ndarray
- val_objs (list* of *objects) – list of validation objects
- val_targets (list) – list of validation targets
- **kwargs –
Returns: self
class maml.base._model.KerasMixin()
Bases: object
keras models mixin with save and load functionality.
evaluate(eval_objs: list | np.ndarray, eval_targets: list | np.ndarray, is_feature: bool = False)
Evaluate objs, targets.
- Parameters
- eval_objs (list) – objs for evaluation
- eval_targets (list) – target list for the corresponding objects
- is_feature (bool) – whether the input x is feature matrix
- metric (callable) – metric for evaluation
classmethod from_file(filename: str, **kwargs)
Load the models from file :param filename: filename :type filename: str :param **kwargs:
Returns: object instance
static get_input_dim(describer: BaseDescriber | None = None, input_dim: int | None = None)
Get feature dimension/input_dim from describers or input_dim.
- Parameters
- describer (Describer) – describers
- input_dim (int) – optional input dim int
load(filename: str, custom_objects: list | None = None)
Load models parameters from filename :param filename: models file name. :type filename: str
Returns: None
save(filename: str)
Save the models and describers.
- Parameters filename (str) – filename for save
class maml.base._model.KerasModel(model, describer: BaseDescriber | None = None, **kwargs)
Bases: BaseModel
, KerasMixin
MAML models with keras models as estimators.
static _get_validation_data(val_features, val_targets, **val_kwargs)
construct validation data, the default is just returning a list of val_features and val_targets.
fit(features: list | np.ndarray, targets: list | np.ndarray | None = None, val_features: list | np.ndarray | None = None, val_targets: list | np.ndarray | None = None, **kwargs)
- Parameters
- features (list* or *np.ndarray) – Numerical input feature list or numpy array with dim (m, n) where m is the number of data and n is the feature dimension.
- targets (list* or *np.ndarray) – Numerical output target list, or numpy array with dim (m, ).
- val_features (list* or *np.ndarray) – validation features
- val_targets (list* or *np.ndarray) – validation targets.
- Returns self
class maml.base._model.SKLModel(model, describer: BaseDescriber | None = None, **kwargs)
Bases: BaseModel
, SklearnMixin
MAML models with sklearn models as estimator.
class maml.base._model.SklearnMixin()
Bases: object
Sklearn models save and load functionality.
evaluate(eval_objs: list | np.ndarray, eval_targets: list | np.ndarray, is_feature: bool = False, metric: str | Callable | None = None)
Evaluate objs, targets.
- Parameters
- eval_objs (list) – objs for evaluation
- eval_targets (list) – target list for the corresponding objects
- is_feature (bool) – whether the input x is feature matrix
- metric (callable) – metric for evaluation
classmethod from_file(filename: str, **kwargs)
Load the models from file :param filename: filename :type filename: str :param **kwargs:
Returns: object instance
load(filename: str)
Load models parameters from filename :param filename: models file name. :type filename: str
Returns: None
save(filename: str)
Save the models and describers.
- Parameters filename (str) – filename for save
maml.base._model.is_keras_model(model: BaseModel)
Check whether the model is keras :param model: model :type model: BaseModel
Returns: bool.
maml.base._model.is_sklearn_model(model: BaseModel)
Check whether the model is sklearn :param model: model :type model: BaseModel
Returns: bool.