mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 16:57:31 +01:00
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})
26 lines
907 B
C++
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
|