33 lines
1.2 KiB
C++
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 |