Files
Upsilon/apps/regression/model/logistic_model.h
Léa Saviot a8ead6b66e [apps/regression] Better initialisation of logistic model coefficients
It provides a better fit for:
x = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}
y = {5.0, 9.0, 40.0, 64.0, 144.0, 200.0, 269.0, 278.0, 290.0, 295.0}
(coeffs should be {64.9, 1.0, 297.4})
2020-02-12 15:13:16 +01:00

26 lines
907 B
C++

#ifndef REGRESSION_LOGISTIC_MODEL_H
#define REGRESSION_LOGISTIC_MODEL_H
#include "model.h"
namespace Regression {
class LogisticModel : public Model {
public:
using Model::Model;
Poincare::Layout layout() override;
I18n::Message formulaMessage() const override { return I18n::Message::LogisticRegressionFormula; }
double evaluate(double * modelCoefficients, double x) const override;
double levelSet(double * modelCoefficients, double xMin, double step, double xMax, double y, Poincare::Context * context) override;
double partialDerivate(double * modelCoefficients, int derivateCoefficientIndex, double x) const override;
int numberOfCoefficients() const override { return 3; }
int bannerLinesCount() const override { return 3; }
private:
void specializedInitCoefficientsForFit(double * modelCoefficients, double defaultValue, Store * store, int series) const override;
};
}
#endif