change a_float to a_real
[liba.git] / lua / src / regress_linear.h
blobc0c5f4a788ca1475f8d751b54bd2c64239b0f610
1 /***
2 linear regression
3 @classmod a.regress_linear
4 */
6 #ifndef LUA_LIBA_REGRESS_LINEAR_H
7 #define LUA_LIBA_REGRESS_LINEAR_H
9 #include "a.h"
11 /***
12 linear regression
13 @field coef regression coefficient
14 @field bias intercept
15 @table a.regress_linear
17 #if defined(__cplusplus)
18 extern "C" {
19 #endif /* __cplusplus */
21 /***
22 destructor for linear regression
23 @function die
25 int liba_regress_linear_die(lua_State *L);
27 /***
28 constructor for linear regression
29 @tparam number coef regression coefficient
30 @tparam number bias intercept
31 @treturn a.regress_linear linear regression userdata
32 @function new
34 int liba_regress_linear_new(lua_State *L);
36 /***
37 initialize for linear regression
38 @tparam number coef regression coefficient
39 @tparam number bias intercept
40 @treturn a.regress_linear linear regression userdata
41 @function init
43 int liba_regress_linear_init(lua_State *L);
45 /***
46 calculate predicted value for linear regression
47 @tparam number val independent variable
48 @treturn number predicted value
49 @function eval
51 int liba_regress_linear_eval(lua_State *L);
53 /***
54 calculate residuals for linear regression
55 @tparam table x predictor data, specified as a numeric matrix
56 @tparam table y response data, specified as a numeric vector
57 @treturn table residuals, specified as a numeric vector
58 @function err
60 int liba_regress_linear_err(lua_State *L);
62 /***
63 gradient descent for linear regression
64 @tparam table input predictor data, specified as a numeric vector
65 @tparam number error residual, specified as a numeric scalar
66 @tparam number alpha learning rate for gradient descent
67 @treturn a.regress_linear linear regression userdata
68 @function gd
70 int liba_regress_linear_gd(lua_State *L);
72 /***
73 stochastic gradient descent for linear regression
74 @tparam table x predictor data, specified as a numeric matrix
75 @tparam table y response data, specified as a numeric vector
76 @tparam number alpha learning rate for gradient descent
77 @treturn a.regress_linear linear regression userdata
78 @function sgd
80 int liba_regress_linear_sgd(lua_State *L);
82 /***
83 batch gradient descent for linear regression
84 @tparam table x predictor data, specified as a numeric matrix
85 @tparam table y response data, specified as a numeric vector
86 @tparam number alpha learning rate for gradient descent
87 @treturn a.regress_linear linear regression userdata
88 @function bgd
90 int liba_regress_linear_bgd(lua_State *L);
92 /***
93 mini-batch gradient descent for linear regression
94 @tparam table x predictor data, specified as a numeric matrix
95 @tparam table y response data, specified as a numeric vector
96 @tparam number delta threshold for gradient descent value
97 @tparam number lrmax maximum learning rate of iterations
98 @tparam number lrmin minimum learning rate of iterations
99 @tparam[opt] integer lrtim total number of learning rate steps
100 @tparam[opt] integer epoch maximum number of epochs
101 @tparam[opt] integer batch batch size of data
102 @treturn number change in loss function
103 @function mgd
105 int liba_regress_linear_mgd(lua_State *L);
107 /***
108 zeroing for linear regression
109 @treturn a.regress_linear linear regression userdata
110 @function zero
112 int liba_regress_linear_zero(lua_State *L);
114 #if defined(__cplusplus)
115 } /* extern "C" */
116 #endif /* __cplusplus */
118 #endif /* regress_linear.h */