#pragma once #include #include #include #include class TLinearModel { private: TVector Coefficients; double Intercept; public: Y_SAVELOAD_DEFINE(Coefficients, Intercept); TLinearModel(TVector&& coefficients, const double intercept) : Coefficients(std::move(coefficients)) , Intercept(intercept) { } explicit TLinearModel(size_t featuresCount = 0) : Coefficients(featuresCount) , Intercept(0.) { } const TVector& GetCoefficients() const { return Coefficients; } double GetIntercept() const { return Intercept; } template double Prediction(const TVector& features) const { return InnerProduct(Coefficients, features, Intercept); } };