fab.hme.model package

Submodules

fab.hme.model.hme_supervised_model module

class fab.hme.model.hme_supervised_model.HMESupervisedModel(lvprior, comps, num_features, num_targets, gate_feature_ids, comp_feature_ids)

Bases: object

FAB/HME supervised model class.

A model has:
  • a latent variable prior object (lvprior)

  • lists of SupervisedComponent objects (comps)

  • the number of features and targets given in the learning process (num_features, num_targets)

  • feature IDs applied to gating functions and components (gate_feature_ids, comp_feature_ids)

In order to predict, calculate log-likelihood values, or etc. using a model, the attributes of the model must be set properly.

Parameters:
lvpriorHMELVPrior

Latent variable prior object.

compslist[SupervisedComponent]

List of component objects.

num_featuresint

Number of features in learning process. Input data in the prediction process must be consistent with num_features.

num_targetsint

Number of targets in learning process. Input data in the prediction process must be consistent with num_targets.

gate_feature_idsNone or list[int]

Feature IDs which were used in the gate-parameters’ optimizations. If set as None, all features are specified in the list.

comp_feature_idsNone or list[int]

Feature IDs which were used in the component-parameters’ optimizations. If set as None, all features are specified in the list.

Attributes:
comp_ids

Returns the component IDs.

num_comps

Returns the number of components.

Methods

assign_comp(X)

Assign a component for each sample.

calc_comp_loglikelihood(X, Y)

Calculates log-likelihood values of components.

calc_decision_function(X)

Calculates the decision function value for each sample.

calc_decision_function_compwise(X)

Calculates the decision function value for each sample and component.

calc_loglikelihood(X, Y)

Calculates log-likelihood values.

calc_loglikelihood_compwise(X, Y)

Calculates component-wise log-likelihood values.

calc_posterior(X, Y)

Calculates posterior distribution.

calc_prior_loglikelihood(X)

Calculates log-likelihood values of prior.

from_dict(model_dict)

Restores the FAB/HME supervised model object from dict information.

predict(X[, is_decision_function])

Predict target values for each sample.

predict_compwise(X[, is_decision_function])

Predict target values for each sample and each component.

to_dict()

Generates a dict of information on the FAB/HME supervised model.

assign_comp(X)

Assign a component for each sample.

This method assign a component with the highest likelihood for each sample using prior distribution.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Returns:
assigned_comp_idsnp.array, size = (num_samples)

Assigned component ID for each sample. Note that component IDs are not the same as component IDs when there are shrunk components.

calc_comp_loglikelihood(X, Y)

Calculates log-likelihood values of components.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Ynp.array, size = (num_samples) or

np.ndarray, size = (num_samples, num_targets) Input target data.

Returns:
loglikelihoodnp.ndarray, size = (num_samples, num_comps)

Log-likelihood value for each sample and each component.

calc_decision_function(X)

Calculates the decision function value for each sample.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Returns:
Y_estnp.array, size = (num_samples) or

np.ndarray, size = (num_samples, num_targets)

Decision function value for each sample.

calc_decision_function_compwise(X)

Calculates the decision function value for each sample and component.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Returns:
Y_estnp.ndarray, size = (num_samples, num_comps) or

size = (num_samples, num_comps, num_targets)

Decision function value for each sample and component.

calc_loglikelihood(X, Y)

Calculates log-likelihood values.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Ynp.array, size = (num_samples) or

np.ndarray, size = (num_samples, num_targets) Input target data.

Returns:
loglikelihoodnp.array, size = (num_samples)

Log-likelihood value for each sample.

calc_loglikelihood_compwise(X, Y)

Calculates component-wise log-likelihood values.

Both prior’s and components’ likelihood are considered.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Ynp.array, size = (num_samples) or

np.ndarray, size = (num_samples, num_targets) Input target data.

Returns:
loglikelihoodnp.ndarray, size = (num_samples, num_comps)

Log-likelihood value for each sample and each component.

calc_posterior(X, Y)

Calculates posterior distribution.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Ynp.array, size = (num_samples) or

np.ndarray, size = (num_samples, num_targets) Input target data.

Returns:
posteriornp.ndarray, size = (num_samples, num_comps)

Posterior probability for each sample and each component.

calc_prior_loglikelihood(X)

Calculates log-likelihood values of prior.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

Returns:
loglikelihoodnp.ndarray, size = (num_samples, num_comps)

Log-likelihood value for each sample and each component.

property comp_ids

Returns the component IDs.

Returns:
comp_idslist[int]

List of component ID numbers.

classmethod from_dict(model_dict)

Restores the FAB/HME supervised model object from dict information.

Parameters:
model_dict: dict

Information on the FAB/HME supervised model.

Returns:
model: HMESupervisedModel

An instance of the FAB/HME supervised model class.

Notes

For the format of the dict (model_dict), refer to an example for to_dict() method.

property num_comps

Returns the number of components. The number of shrunk components are not included.

Returns:
num_compsint

Number of components.

predict(X, is_decision_function=False)

Predict target values for each sample.

Prediction is based on:
  1. selected component with prior,

  2. decision function of the selected component.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

is_decision_functionboolean, optional [default: False]

If True, it outputs values of the decision function instead of target values.

Returns:
Y_estnp.array, size = (num_samples) or

np.ndarray, size = (num_samples, num_targets)

Prediction value for each sample.

predict_compwise(X, is_decision_function=False)

Predict target values for each sample and each component.

Predictions are based on the decision function of all components.

Parameters:
Xnp.ndarray, size = (num_samples, num_features)

Input feature data.

is_decision_functionboolean, optional [default: False]

If True, outputs values of decision function instead of target values.

Returns:
Y_estnp.ndarray, size = (num_samples, num_comps) or

size = (num_samples, num_comps, num_targets)

Prediction value for each sample.

to_dict()

Generates a dict of information on the FAB/HME supervised model.

Returns:
model_dict: dict

Information on FAB/HME supervised model.

Examples

>>> model.to_dict()
{
    'gates': {
        'class ': HMEBernGateLVPrior,
        'node_info': {
            0: {
                'type': 'gate',
                'node_id': 0,
                'gate_index': 0,
                'gate_func': {
                    'feature_ids': [2, 3, 5],
                    'internal_feature_index': 1,
                    'threshold': 2.5,
                    'prob_left': 0.4
                }
            },
            1: {
                'type': 'comp',
                'node_id': 1,
                'comp_index': 0
            },
            2: {
                'type': 'comp',
                'node_id': 2,
                'comp_index': 1
            }
        },
        'branch_info': {
            0: {
                'left_id': 1,
                'right_id': 2
            }
        },
        'root_id': 0
    },
    'comps': [
        {
            'class': LeastSquaresRgComponent,
            'comp_id': 0,
            'feature_ids': [0, 1, 3, 4],
            'weights': np.array([5.0, 0.0, -3.5, 0.0]),
            'bias': 1.0,
            'variance': 0.5
        },
        {
            'class': LeastSquaresRgComponent,
            'comp_id': 1,
            'feature_ids': [0, 1, 3, 4],
            'weights': np.array([1.0, 3.5, 0.0, -2.0]),
            'bias': 0.8,
            'variance': 0.1
        }
     ],
     'num_features': 6,
     'num_targets': 1,
     'gate_feature_ids': [2, 3, 5],
     'comp_feature_ids': [0, 1, 3, 4]
}

Module contents