pmlpp/mlpp/uni_lin_reg/uni_lin_reg.cpp

35 lines
775 B
C++
Raw Normal View History

//
// UniLinReg.cpp
//
// Created by Marc Melikyan on 9/29/20.
//
2023-01-24 18:12:23 +01:00
#include "uni_lin_reg.h"
#include "../lin_alg/lin_alg.h"
#include "../stat/stat.h"
#include <iostream>
// General Multivariate Linear Regression Model
// ŷ = b0 + b1x1 + b2x2 + ... + bkxk
// Univariate Linear Regression Model
// ŷ = b0 + b1x1
2023-01-24 19:20:18 +01:00
MLPPUniLinReg::MLPPUniLinReg(std::vector<double> x, std::vector<double> y) :
2023-01-24 19:00:54 +01:00
inputSet(x), outputSet(y) {
MLPPStat estimator;
2023-01-24 19:00:54 +01:00
b1 = estimator.b1Estimation(inputSet, outputSet);
b0 = estimator.b0Estimation(inputSet, outputSet);
}
std::vector<double> MLPPUniLinReg::modelSetTest(std::vector<double> x) {
2023-01-25 00:29:02 +01:00
MLPPLinAlg alg;
2023-01-24 19:00:54 +01:00
return alg.scalarAdd(b0, alg.scalarMultiply(b1, x));
}
double MLPPUniLinReg::modelTest(double input) {
2023-01-24 19:00:54 +01:00
return b0 + b1 * input;
}
2023-01-24 19:20:18 +01:00