40#include "EST_multistats.h"
41#include "EST_simplestats.h"
43static void ols_load_selected_feats(
const EST_FMatrix &X,
46static int ols_stepwise_find_best(
const EST_FMatrix &X,
63 if (!pseudo_inverse(X,
Xplus))
99 if (X.num_rows() <= X.num_columns())
101 cerr <<
"OLS: less rows than columns, so cannot find solution."
105 if (X.num_columns() !=
included.length())
107 cerr <<
"OLS: `included' list wrong size: internal error."
133 cerr <<
"OLS: found singularity twice, shouldn't happen"
139 cerr <<
"OLS: omitting singularity in column " << s <<
endl;
146 coeffs.resize(X.num_columns(),1);
147 for (
j=i=0; i<X.num_columns(); i++)
154 coeffs.a_no_check(i,0) = 0.0;
161static void ols_load_selected_feats(
const EST_FMatrix &X,
167 for (width=i=0; i<
included.length(); i++)
171 Xl.resize(X.num_rows(),width);
173 for (i=0; i<X.num_rows(); i++)
174 for (k=
j=0;
j < X.num_columns();
j++)
177 Xl.a_no_check(i,k) = X.a_no_check(i,
j);
192 multiply(samples,
coeffs,res);
214 for (i=1; i < X.num_columns(); i++)
220 cerr <<
"OLS: stepwise failed" <<
endl;
230 printf(
"FEATURE %d %s: %2.4f\n",
242static int ols_stepwise_find_best(
const EST_FMatrix &X,
258 for (i=0; i <
included.length(); i++)
260 if (
included.a_no_check(i) == FALSE)
269 printf(
"tested %d %s %f best %f\n",
316 v1 =
xx.mean()-(
x.mean()*
x.mean());
317 v2 =
yy.mean()-(
y.mean()*
y.mean());
328 correlation = (
xy.mean() - (
x.mean()*
y.mean()))/
sqrt(
v3);
336 if ((correlation <= 1.0) && (correlation >= -1.0))
int num_columns() const
return number of columns
int num_rows() const
return number of rows