File probability_function_chain_rule.hpp

namespace boosting
class ChainRuleFactory : public boosting::IJointProbabilityFunctionFactory
#include <probability_function_chain_rule.hpp>

Allows to create instances of the type IJointProbabilityFunction that transform regression scores that are predicted for an example into joint probabilities by applying an IMarginalProbabilityFunction to each one and calculating the product of the resulting marginal probabilities according to the probabilistic chain rule.

Public Functions

ChainRuleFactory(std::unique_ptr<IMarginalProbabilityFunctionFactory> marginalProbabilityFunctionFactoryPtr)
Parameters:

marginalProbabilityFunctionFactoryPtr – An unique pointer to an object of type IMarginalProbabilityFunctionFactory that allows to create implementations of the function to be used to transform regression scores into marginal probabilities

virtual std::unique_ptr<IJointProbabilityFunction> create(const IMarginalProbabilityCalibrationModel &marginalProbabilityCalibrationModel, const IJointProbabilityCalibrationModel &jointProbabilityCalibrationModel) const override

Creates and returns a new object of the type IJointProbabilityFunction.

Parameters:
  • marginalProbabilityCalibrationModel – A reference to an object of type IMarginalProbabilityCalibrationModel that should be used for the calibration of marginal probabilities

  • jointProbabilityCalibrationModel – A reference to an object of type IJointProbabilityCalibrationModel that should be used for the calibration of marginal probabilities

Returns:

An unique pointer to an object of type IJointProbabilityFunction that has been created

Private Members

std::unique_ptr<IMarginalProbabilityFunctionFactory> marginalProbabilityFunctionFactoryPtr_