ts-aggregator/project_template/Estimation.h
2022-12-13 12:36:06 +04:00

33 lines
1.2 KiB
C++

#ifndef ESTIMATION_H
#define ESTIMATION_H
#include <vector>
using namespace std;
// àáñòðàêòíûé êëàññ îöåíêè âðåìåííûõ ðÿäîâ
// ïîêà ÷òî èñïîëüçóåòñÿ äëÿ õðàíåíèÿ òîëüêî ïîëÿ "çíà÷åíèå"
// íóæíî áóäåò äîïîëíèòü íåîáõîäèìûìè ó÷àñòêàìè âðåìåííîãî ðÿäà äëÿ ïðîåäåíèÿ îöåíêè
// îò íåãî íàñëåäóþòñÿ êîíêðåòíûå ðåàëèçàöèè êðèòåðèåâ, ðåàëèçóþùèå ñîîòâåòñòâóþùèå ìåòîäèêè
// èñõîäèì èç òîãî, ÷òî âñå êðèòåðèè â êà÷åñòâå ðåçóëüòàòà âîçâðàùàþò double
class Estimation {
public:
double value; // çíà÷åíèå îöåíêè ìîäåëè
virtual double getValue(int paramsCount, vector<double>, vector<double>) = 0; // ïîëó÷èòü çíà÷åíèå îöåíêè ìîäåëè
virtual double getValue(vector<double>, vector<double>) = 0; // ïîëó÷èòü çíà÷åíèå îöåíêè ìîäåëè
protected:
double RSS(vector<double> original, vector<double> model){
double res = 0.0;
int commonElemsCount = original.size() > model.size() ? original.size() : model.size();
for (int i = 0; i < commonElemsCount; i++) {
res += (original[i] - model[i]) * (original[i] - model[i]);
}
return res;
}
virtual void Validate(vector<double> original, vector<double> model){
if (original.size() == 0)
throw exception("Original time seria is empty");
if (model.size() == 0)
throw exception("Model time seria is empty");
}
};
#endif