macrosynergy.learning.forecasting.meta_estimators.probability#
- class ProbabilityEstimator(classifier)[source]#
Bases:
BaseEstimator
,MetaEstimatorMixin
,ClassifierMixin
Meta estimator to create trading signals based on the probability of going long.
- Parameters:
classifier (ClassifierMixin) – A scikit-learn classifier.
Notes
This class stores feature importances as the feature importances of the base estimator as well as defining a create_signal method that returns the probability of going long in excess of 0.5. This is taken into account when used in the SignalOptimizer class in this package.
- fit(X, y)[source]#
Fit the underlying classifier.
- Parameters:
X (pd.DataFrame or np.ndarray) – Pandas dataframe or numpy array of input features.
y (pd.Series or pd.DataFrame or np.ndarray) – Pandas series, dataframe or numpy array of targets associated with each sample in X.
- predict(X)[source]#
Predict the class labels for the provided data.
- Parameters:
X (pd.DataFrame or numpy array) – Input feature matrix.
- Returns:
y_pred – Numpy array of predictions.
- Return type:
np.ndarray
- create_signal(X)[source]#
Create a trading signal based on the probability of going long.
- Parameters:
X (pd.DataFrame or numpy array) – Input feature matrix.
- Returns:
y_pred – Numpy array of signals.
- Return type:
np.ndarray
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') ProbabilityEstimator #
Request metadata passed to the
score
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config()
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.New in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.