本文整理汇总了C#中linearmodel类的典型用法代码示例。如果您正苦于以下问题:C# linearmodel类的具体用法?C# linearmodel怎么用?C# linearmodel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
linearmodel类属于命名空间,在下文中一共展示了linearmodel类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: lrinternal
/*************************************************************************
Internal linear regression subroutine
*************************************************************************/
private static void lrinternal(double[,] xy,
double[] s,
int npoints,
int nvars,
ref int info,
linearmodel lm,
lrreport ar)
{
double[,] a = new double[0,0];
double[,] u = new double[0,0];
double[,] vt = new double[0,0];
double[,] vm = new double[0,0];
double[,] xym = new double[0,0];
double[] b = new double[0];
double[] sv = new double[0];
double[] t = new double[0];
double[] svi = new double[0];
double[] work = new double[0];
int i = 0;
int j = 0;
int k = 0;
int ncv = 0;
int na = 0;
int nacv = 0;
double r = 0;
double p = 0;
double epstol = 0;
lrreport ar2 = new lrreport();
int offs = 0;
linearmodel tlm = new linearmodel();
int i_ = 0;
int i1_ = 0;
info = 0;
epstol = 1000;
//
// Check for errors in data
//
if( npoints<nvars || nvars<1 )
{
info = -1;
return;
}
for(i=0; i<=npoints-1; i++)
{
if( (double)(s[i])<=(double)(0) )
{
info = -2;
return;
}
}
info = 1;
//
// Create design matrix
//
a = new double[npoints-1+1, nvars-1+1];
b = new double[npoints-1+1];
for(i=0; i<=npoints-1; i++)
{
r = 1/s[i];
for(i_=0; i_<=nvars-1;i_++)
{
a[i,i_] = r*xy[i,i_];
}
b[i] = xy[i,nvars]/s[i];
}
//
// Allocate W:
// W[0] array size
// W[1] version number, 0
// W[2] NVars (minus 1, to be compatible with external representation)
// W[3] coefficients offset
//
lm.w = new double[4+nvars-1+1];
offs = 4;
lm.w[0] = 4+nvars;
lm.w[1] = lrvnum;
lm.w[2] = nvars-1;
lm.w[3] = offs;
//
// Solve problem using SVD:
//
// 0. check for degeneracy (different types)
// 1. A = U*diag(sv)*V'
// 2. T = b'*U
// 3. w = SUM((T[i]/sv[i])*V[..,i])
// 4. cov(wi,wj) = SUM(Vji*Vjk/sv[i]^2,K=1..M)
//
// see $15.4 of "Numerical Recipes in C" for more information
//
t = new double[nvars-1+1];
svi = new double[nvars-1+1];
//.........这里部分代码省略.........
开发者ID:lgatto,项目名称:proteowizard,代码行数:101,代码来源:dataanalysis.cs
示例2: lravgrelerror
/*************************************************************************
RMS error on the test set
INPUT PARAMETERS:
LM - linear model
XY - test set
NPoints - test set size
RESULT:
average relative error.
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
public static double lravgrelerror(linearmodel lm,
double[,] xy,
int npoints)
{
double result = 0;
int i = 0;
int k = 0;
double v = 0;
int offs = 0;
int nvars = 0;
int i_ = 0;
int i1_ = 0;
alglib.ap.assert((int)Math.Round(lm.w[1])==lrvnum, "LINREG: Incorrect LINREG version!");
nvars = (int)Math.Round(lm.w[2]);
offs = (int)Math.Round(lm.w[3]);
result = 0;
k = 0;
for(i=0; i<=npoints-1; i++)
{
if( (double)(xy[i,nvars])!=(double)(0) )
{
i1_ = (offs)-(0);
v = 0.0;
for(i_=0; i_<=nvars-1;i_++)
{
v += xy[i,i_]*lm.w[i_+i1_];
}
v = v+lm.w[offs+nvars];
result = result+Math.Abs((v-xy[i,nvars])/xy[i,nvars]);
k = k+1;
}
}
if( k!=0 )
{
result = result/k;
}
return result;
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:53,代码来源:dataanalysis.cs
示例3: lrcopy
/*************************************************************************
Copying of LinearModel strucure
INPUT PARAMETERS:
LM1 - original
OUTPUT PARAMETERS:
LM2 - copy
-- ALGLIB --
Copyright 15.03.2009 by Bochkanov Sergey
*************************************************************************/
public static void lrcopy(linearmodel lm1,
linearmodel lm2)
{
int k = 0;
int i_ = 0;
k = (int)Math.Round(lm1.w[0]);
lm2.w = new double[k-1+1];
for(i_=0; i_<=k-1;i_++)
{
lm2.w[i_] = lm1.w[i_];
}
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:25,代码来源:dataanalysis.cs
示例4: lrprocess
/*************************************************************************
Procesing
INPUT PARAMETERS:
LM - linear model
X - input vector, array[0..NVars-1].
Result:
value of linear model regression estimate
-- ALGLIB --
Copyright 03.09.2008 by Bochkanov Sergey
*************************************************************************/
public static double lrprocess(linearmodel lm,
double[] x)
{
double result = 0;
double v = 0;
int offs = 0;
int nvars = 0;
int i_ = 0;
int i1_ = 0;
alglib.ap.assert((int)Math.Round(lm.w[1])==lrvnum, "LINREG: Incorrect LINREG version!");
nvars = (int)Math.Round(lm.w[2]);
offs = (int)Math.Round(lm.w[3]);
i1_ = (offs)-(0);
v = 0.0;
for(i_=0; i_<=nvars-1;i_++)
{
v += x[i_]*lm.w[i_+i1_];
}
result = v+lm.w[offs+nvars];
return result;
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:35,代码来源:dataanalysis.cs
示例5: lrrmserror
/*************************************************************************
RMS error on the test set
INPUT PARAMETERS:
LM - linear model
XY - test set
NPoints - test set size
RESULT:
root mean square error.
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
public static double lrrmserror(linearmodel lm,
double[,] xy,
int npoints)
{
double result = 0;
int i = 0;
double v = 0;
int offs = 0;
int nvars = 0;
int i_ = 0;
int i1_ = 0;
alglib.ap.assert((int)Math.Round(lm.w[1])==lrvnum, "LINREG: Incorrect LINREG version!");
nvars = (int)Math.Round(lm.w[2]);
offs = (int)Math.Round(lm.w[3]);
result = 0;
for(i=0; i<=npoints-1; i++)
{
i1_ = (offs)-(0);
v = 0.0;
for(i_=0; i_<=nvars-1;i_++)
{
v += xy[i,i_]*lm.w[i_+i1_];
}
v = v+lm.w[offs+nvars];
result = result+math.sqr(v-xy[i,nvars]);
}
result = Math.Sqrt(result/npoints);
return result;
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:44,代码来源:dataanalysis.cs
示例6: term
/*************************************************************************
Unpacks coefficients of linear model.
INPUT PARAMETERS:
LM - linear model in ALGLIB format
OUTPUT PARAMETERS:
V - coefficients, array[0..NVars]
constant term (intercept) is stored in the V[NVars].
NVars - number of independent variables (one less than number
of coefficients)
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
public static void lrunpack(linearmodel lm,
ref double[] v,
ref int nvars)
{
int offs = 0;
int i_ = 0;
int i1_ = 0;
v = new double[0];
nvars = 0;
alglib.ap.assert((int)Math.Round(lm.w[1])==lrvnum, "LINREG: Incorrect LINREG version!");
nvars = (int)Math.Round(lm.w[2]);
offs = (int)Math.Round(lm.w[3]);
v = new double[nvars+1];
i1_ = (offs) - (0);
for(i_=0; i_<=nvars;i_++)
{
v[i_] = lm.w[i_+i1_];
}
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:36,代码来源:dataanalysis.cs
示例7: format
/*************************************************************************
"Packs" coefficients and creates linear model in ALGLIB format (LRUnpack
reversed).
INPUT PARAMETERS:
V - coefficients, array[0..NVars]
NVars - number of independent variables
OUTPUT PAREMETERS:
LM - linear model.
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
public static void lrpack(double[] v,
int nvars,
linearmodel lm)
{
int offs = 0;
int i_ = 0;
int i1_ = 0;
lm.w = new double[4+nvars+1];
offs = 4;
lm.w[0] = 4+nvars+1;
lm.w[1] = lrvnum;
lm.w[2] = nvars;
lm.w[3] = offs;
i1_ = (0) - (offs);
for(i_=offs; i_<=offs+nvars;i_++)
{
lm.w[i_] = v[i_+i1_];
}
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:34,代码来源:dataanalysis.cs
示例8: A
/*************************************************************************
Like LRBuildS, but builds model
Y = A(0)*X[0] + ... + A(N-1)*X[N-1]
i.e. with zero constant term.
-- ALGLIB --
Copyright 30.10.2008 by Bochkanov Sergey
*************************************************************************/
public static void lrbuildzs(double[,] xy,
double[] s,
int npoints,
int nvars,
ref int info,
linearmodel lm,
lrreport ar)
{
double[,] xyi = new double[0,0];
double[] x = new double[0];
double[] c = new double[0];
int i = 0;
int j = 0;
double v = 0;
int offs = 0;
double mean = 0;
double variance = 0;
double skewness = 0;
double kurtosis = 0;
int i_ = 0;
info = 0;
//
// Test parameters
//
if( npoints<=nvars+1 || nvars<1 )
{
info = -1;
return;
}
//
// Copy data, add one more column (constant term)
//
xyi = new double[npoints-1+1, nvars+1+1];
for(i=0; i<=npoints-1; i++)
{
for(i_=0; i_<=nvars-1;i_++)
{
xyi[i,i_] = xy[i,i_];
}
xyi[i,nvars] = 0;
xyi[i,nvars+1] = xy[i,nvars];
}
//
// Standartization: unusual scaling
//
x = new double[npoints-1+1];
c = new double[nvars-1+1];
for(j=0; j<=nvars-1; j++)
{
for(i_=0; i_<=npoints-1;i_++)
{
x[i_] = xy[i_,j];
}
basestat.samplemoments(x, npoints, ref mean, ref variance, ref skewness, ref kurtosis);
if( (double)(Math.Abs(mean))>(double)(Math.Sqrt(variance)) )
{
//
// variation is relatively small, it is better to
// bring mean value to 1
//
c[j] = mean;
}
else
{
//
// variation is large, it is better to bring variance to 1
//
if( (double)(variance)==(double)(0) )
{
variance = 1;
}
c[j] = Math.Sqrt(variance);
}
for(i=0; i<=npoints-1; i++)
{
xyi[i,j] = xyi[i,j]/c[j];
}
}
//
// Internal processing
//
lrinternal(xyi, s, npoints, nvars+1, ref info, lm, ar);
//.........这里部分代码省略.........
开发者ID:lgatto,项目名称:proteowizard,代码行数:101,代码来源:dataanalysis.cs
示例9: deviations
/*************************************************************************
Linear regression
Variant of LRBuild which uses vector of standatd deviations (errors in
function values).
INPUT PARAMETERS:
XY - training set, array [0..NPoints-1,0..NVars]:
* NVars columns - independent variables
* last column - dependent variable
S - standard deviations (errors in function values)
array[0..NPoints-1], S[i]>0.
NPoints - training set size, NPoints>NVars+1
NVars - number of independent variables
OUTPUT PARAMETERS:
Info - return code:
* -255, in case of unknown internal error
* -4, if internal SVD subroutine haven't converged
* -1, if incorrect parameters was passed (NPoints<NVars+2, NVars<1).
* -2, if S[I]<=0
* 1, if subroutine successfully finished
LM - linear model in the ALGLIB format. Use subroutines of
this unit to work with the model.
AR - additional results
-- ALGLIB --
Copyright 02.08.2008 by Bochkanov Sergey
*************************************************************************/
public static void lrbuilds(double[,] xy,
double[] s,
int npoints,
int nvars,
ref int info,
linearmodel lm,
lrreport ar)
{
double[,] xyi = new double[0,0];
double[] x = new double[0];
double[] means = new double[0];
double[] sigmas = new double[0];
int i = 0;
int j = 0;
double v = 0;
int offs = 0;
double mean = 0;
double variance = 0;
double skewness = 0;
double kurtosis = 0;
int i_ = 0;
info = 0;
//
// Test parameters
//
if( npoints<=nvars+1 || nvars<1 )
{
info = -1;
return;
}
//
// Copy data, add one more column (constant term)
//
xyi = new double[npoints-1+1, nvars+1+1];
for(i=0; i<=npoints-1; i++)
{
for(i_=0; i_<=nvars-1;i_++)
{
xyi[i,i_] = xy[i,i_];
}
xyi[i,nvars] = 1;
xyi[i,nvars+1] = xy[i,nvars];
}
//
// Standartization
//
x = new double[npoints-1+1];
means = new double[nvars-1+1];
sigmas = new double[nvars-1+1];
for(j=0; j<=nvars-1; j++)
{
for(i_=0; i_<=npoints-1;i_++)
{
x[i_] = xy[i_,j];
}
basestat.samplemoments(x, npoints, ref mean, ref variance, ref skewness, ref kurtosis);
means[j] = mean;
sigmas[j] = Math.Sqrt(variance);
if( (double)(sigmas[j])==(double)(0) )
{
sigmas[j] = 1;
}
for(i=0; i<=npoints-1; i++)
{
xyi[i,j] = (xyi[i,j]-means[j])/sigmas[j];
//.........这里部分代码省略.........
开发者ID:lgatto,项目名称:proteowizard,代码行数:101,代码来源:dataanalysis.cs
示例10: make_copy
public override alglib.apobject make_copy()
{
linearmodel _result = new linearmodel();
_result.w = (double[])w.Clone();
return _result;
}
开发者ID:Kerbas-ad-astra,项目名称:MechJeb2,代码行数:6,代码来源:dataanalysis.cs
示例11: lrunserialize
/*************************************************************************
Unserialization of DecisionForest strucure
INPUT PARAMETERS:
RA - real array which stores decision forest
OUTPUT PARAMETERS:
LM - unserialized structure
-- ALGLIB --
Copyright 15.03.2009 by Bochkanov Sergey
*************************************************************************/
public static void lrunserialize(ref double[] ra,
ref linearmodel lm)
{
int i_ = 0;
int i1_ = 0;
System.Diagnostics.Debug.Assert((int)Math.Round(ra[0])==lrvnum, "LRUnserialize: incorrect array!");
lm.w = new double[(int)Math.Round(ra[1])-1+1];
i1_ = (1) - (0);
for(i_=0; i_<=(int)Math.Round(ra[1])-1;i_++)
{
lm.w[i_] = ra[i_+i1_];
}
}
开发者ID:palefacer,项目名称:TelescopeOrientation,代码行数:26,代码来源:linreg.cs
示例12: lrserialize
/*************************************************************************
Serialization of LinearModel strucure
INPUT PARAMETERS:
LM - original
OUTPUT PARAMETERS:
RA - array of real numbers which stores model,
array[0..RLen-1]
RLen - RA lenght
-- ALGLIB --
Copyright 15.03.2009 by Bochkanov Sergey
*************************************************************************/
public static void lrserialize(ref linearmodel lm,
ref double[] ra,
ref int rlen)
{
int i_ = 0;
int i1_ = 0;
rlen = (int)Math.Round(lm.w[0])+1;
ra = new double[rlen-1+1];
ra[0] = lrvnum;
i1_ = (0) - (1);
for(i_=1; i_<=rlen-1;i_++)
{
ra[i_] = lm.w[i_+i1_];
}
}
开发者ID:palefacer,项目名称:TelescopeOrientation,代码行数:30,代码来源:linreg.cs
示例13: lravgerror
/*************************************************************************
Average error on the test set
INPUT PARAMETERS:
LM - linear model
XY - test set
NPoints - test set size
RESULT:
average error.
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
public static double lravgerror(ref linearmodel lm,
ref double[,] xy,
int npoints)
{
double result = 0;
int i = 0;
double v = 0;
int offs = 0;
int nvars = 0;
int i_ = 0;
int i1_ = 0;
System.Diagnostics.Debug.Assert((int)Math.Round(lm.w[1])==lrvnum, "LINREG: Incorrect LINREG version!");
nvars = (int)Math.Round(lm.w[2]);
offs = (int)Math.Round(lm.w[3]);
result = 0;
for(i=0; i<=npoints-1; i++)
{
i1_ = (offs)-(0);
v = 0.0;
for(i_=0; i_<=nvars-1;i_++)
{
v += xy[i,i_]*lm.w[i_+i1_];
}
v = v+lm.w[offs+nvars];
result = result+Math.Abs(v-xy[i,nvars]);
}
result = result/npoints;
return result;
}
开发者ID:palefacer,项目名称:TelescopeOrientation,代码行数:44,代码来源:linreg.cs
注:本文中的linearmodel类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论