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

45 lines
2.0 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef METHOD_H
#define METHOD_H
#include "Estimation.h"
#include "Aic.h"
#include "Param.h"
#include <vector>
using namespace std;
// абстрактный класс метода сглаживания и прогнозирования временных рядов
// хранит в себе поля, отвечающие за части ряда для обучения, тестирования, прогнозную часть
//
class Method {
public:
vector<double> x; // первоначальный временной ряд
vector<double> xLearning; // временной ряд для обучения
vector<double> xEstimation; // временной ряд для тестирования
vector<double> forecast; // прогноз ряда
unsigned int countPointForecast; // количеcтво прогнозируемых точек
//Vovks variables
char * name;
//double weight = 0.5; //start weight
//double value = 0; //last forecast
double weight; //start weight
double value; //last forecast
//bool isActive = true;
bool isActive;
//Vovks variables
virtual vector<double> getForecast() = 0; // виртуальный метод получения прогноза
virtual void createModel() = 0; // виртуальный метод для формирования модели
virtual void createModelForEstimation() = 0; // виртуальный метод для формирования модели на участке для обучения
virtual double calcEstimation(Aic *) = 0; // виртуальный метод получения оценки модели
//virtual double calcEstimation(Aicc *) = 0; // виртуальный метод получения оценки модели
//virtual double calcEstimation(Bic *) = 0; // виртуальный метод получения оценки модели
virtual Param* optimize(Estimation *) = 0; // виртуальный метод оптимизации одного параметра
virtual void setParam(string, double) = 0; // виртуальный метод оптимизации задания параметров
void partition(); // разделить временной ряд на части для обучения и тестирования
void partition(int); // разделить временной ряд на части для обучения и тестирования
vector<double> getXLearning(); // метод получения части временного ряда для обучения
vector<double> getXEstimation(); // метод получения части временного ряда для тестирования
virtual int getNamberParam();
};
#endif