RegressionCFA¶
Contents¶
Overview¶
A RegressionCFA is a subclass of CompositionFunctionApproximator that parameterizes a set of regression_weights
over trials to predict the net_outcome
for a
Composition (or part of one) controlled by an OptimizationControlMechanism. The regression_weights
are updated by its update_weights
LearningFunction
assigned as its adapt
method, which is called by the evaluate
method to predict the net_outcome
for a
Composition (or part of one) controlled by an OptimiziationControlMechanism
, based on a set of state_feature_values
, a control_allocation
,
and the net_outcome
they produced, passed to it from an OptimizationControlMechanism.
The state_feature_values
and control_allocation
passed to the RegressorCFA’s adapt
method, and provided
as the input to its update_weights
, are represented in the vector
attribute of a PredictionVector
assigned to the RegressorCFA`s prediction_vector
attribute. The state_feature_values
are
assigned to the state_features field of the prediction_vector
, and the control_allocation
is assigned to the control_allocation field of the prediction_vector
. The prediction_vector
may also contain fields
for the costs ControlMechanism.costs
associated with the control_allocation
and for interactions among those terms.
The regression_weights
returned by the update_weights
are used by the RegressorCFA’s evaluate
method to predict
the net_outcome
from the prediction_vector
.
Class Reference¶
 class psyneulink.library.compositions.regressioncfa.PV¶
Specifies terms used to compute
vector
attribute ofPredictionVector
. F¶
Main effect of
state_feature_values
.
 C¶
Main effect of
values
ofcontrol_signals
.
 FF¶
Interaction among
state_feature_values
.
 CC¶
Interaction among
values
ofcontrol_signals
.
 FC¶
Interaction between
state_feature_values
andvalues
ofcontrol_signals
.
 FFC¶
Interaction between interactions of
state_feature_values
andvalues
ofcontrol_signals
.
 FCC¶
Interaction between
state_feature_values
and interactions amongvalues
ofcontrol_signals
.
 FFCC¶
Interaction between interactions of
state_feature_values
and interactions amongvalues
ofcontrol_signals
.
 COST¶
Main effect of
costs
ofcontrol_signals
.
 class psyneulink.library.compositions.regressioncfa.RegressionCFA(name=None, update_weights=None, prediction_terms=None)¶
 RegressionCFA(
update_weights=BayesGLM, prediction_terms=[PV.F, PV.C, PV.COST])
Subclass of CompositionFunctionApproximator that implements a CompositionFunctionApproximator as the
agent_rep
of anOptimizationControlmechanism
.See CompositionFunctionApproximator for additional arguments and attributes.
 Parameters
update_weights (LearningFunction, function or method : default BayesGLM) – parameterizes the
regression_weights
used by theevaluate
method to improve its prediction ofnet_outcome
from a given set ofstate_feature_values
and acontrol_allocation
provided by anOptimiziationControlMechanism
. It must take a 2d array as its first argument, the first item of which is an array the same length of thevector
attribute of itsprediction_vector
, and the second item a 1d array containing a scalar value that it tries predict.prediction_terms (List[PV] : default [PV.F, PV.C, PV.COST]) – terms to be included in (and thereby determines the length of) the
vector
attribute of theprediction_vector
; items are members of thePV
enum; the default is [F
,C
FC
,COST
]. IfNone
is specified, the default values will automatically be assigned.
 update_weights¶
parameterizes the
regression_weights
used by theevaluate
method to improve prediction ofnet_outcome
from a given set ofstate_feature_values
and acontrol_allocation
provided by anOptimiziationControlMechanism
; its result is assigned as the value of theregression_weights
attribute. Type
LearningFunction, function or method
 prediction_terms¶
terms included in
vector
attribute of theprediction_vector
; items are members of thePV
enum; the default is [F
,C
FC
,COST
]. Type
List[PV]
 prediction_vector¶
represents and manages values in its
vector
attribute that are used byevaluate
, along withregression_weights
to make its prediction. The values contained in thevector
attribute are determined byprediction_terms
. Type
 regression_weights¶
result returned by
update_weights
method together withprediction_vector
to generate predictednet_outcome
. Type
1d array
 class Parameters(owner, parent=None)¶
 prediction_vector¶

 Default value
None
 Type
 previous_state¶
see
previous_state
 Default value
None
 Type
 regression_weights¶

 Default value
None
 Type
 update_weights¶
see
update_weights
 prediction_vector = None¶
 previous_state = None¶
 regression_weights = None¶
 initialize(features_array, control_signals, context)¶
Assign owner and instantiate
prediction_vector
Must be called before RegressorCFA’s methods can be used.
 adapt(feature_values, control_allocation, net_outcome, context=None)¶
Update
regression_weights
so as to improve prediction of net_outcome from state_feature_values and control_allocation.
 evaluate(feature_values, control_allocation, num_estimates, context)¶
Update prediction_vector <RegressorCFA.prediction_vector>`, then multiply by regression_weights.
Uses the current values of
regression_weights
together with values of control_allocation and state_feature_values arguments to generate predictednet_outcome
.
 class PredictionVector(feature_values, control_signals, specified_terms)¶
Maintain a
vector
of terms for a regression model specified by a list ofspecified_terms
.Terms are maintained in lists indexed by the
PV
Enum and, in “flattened” form within fields of a 1d array invector
indexed by slices listed in theidx
attribute. Parameters
feature_values (2d nparray) – arrays of state_features to assign as the
PV.F
term ofterms
.control_signals (List[ControlSignal]) – list containing the ControlSignals of an OptimizationControlMechanism; the
variable
of each is assigned as thePV.C
term ofterms
.specified_terms (List[PV]) – terms to include in
vector
; entries must be members of thePV
Enum.
 specified_terms¶
terms included as predictors, specified using members of the
PV
Enum. Type
List[PV]
 terms¶
current value of ndarray terms, some of which are used to compute other terms. Only entries for terms in
specified_terms
are assigned values; others are assignedNone
. Type
List[ndarray]
 num¶
number of arrays in outer dimension (axis 0) of each ndarray in
terms
. Only entries for terms inspecified_terms
are assigned values; others are assignedNone
. Type
List[int]
 num_elems¶
number of elements in flattened array for each ndarray in
terms
. Only entries for terms inspecified_terms
are assigned values; others are assignedNone
. Type
List[int]
 self.labels¶
label of each item in
terms
. Only entries for terms inspecified_terms
are assigned values; others are assignedNone
. Type
List[str]
 vector¶
contains the flattened array for all ndarrays in
terms
. Contains only the terms specified inspecified_terms
. Indices for the fields corresponding to each term are listed inidx
. Type
ndarray
 idx¶
indices of
vector
for the flattened version of each nd term interms
. Only entries for terms inspecified_terms
are assigned values; others are assignedNone
. Type
List[slice]
 update_vector(variable, feature_values=None, context=None)¶
Update vector with flattened versions of values returned from the
compute_terms
method of theprediction_vector
.Updates
vector
with current values of variable and, optionally, and state_feature_values.