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:
Methods
assign_comp
(X)Assign a component for each sample.
calc_comp_loglikelihood
(X, Y)Calculates log-likelihood values of components.
Calculates the decision function value for each sample.
Calculates the decision function value for each sample and component.
calc_loglikelihood
(X, Y)Calculates log-likelihood values.
Calculates component-wise log-likelihood values.
calc_posterior
(X, Y)Calculates posterior distribution.
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 forto_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:
selected component with prior,
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] }