本文整理汇总了C#中logitmodel类的典型用法代码示例。如果您正苦于以下问题:C# logitmodel类的具体用法?C# logitmodel怎么用?C# logitmodel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
logitmodel类属于命名空间,在下文中一共展示了logitmodel类的17个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: mnlrelclserror
/*************************************************************************
Relative classification error on the test set
INPUT PARAMETERS:
LM - logit model
XY - test set
NPoints - test set size
RESULT:
percent of incorrectly classified cases.
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static double mnlrelclserror(logitmodel lm,
double[,] xy,
int npoints)
{
double result = 0;
result = (double)mnlclserror(lm, xy, npoints)/(double)npoints;
return result;
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:23,代码来源:dataanalysis.cs
示例2: error
/*************************************************************************
Average relative error on the test set
INPUT PARAMETERS:
LM - logit model
XY - test set
NPoints - test set size
RESULT:
average relative error (error when estimating posterior probabilities).
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
public static double mnlavgrelerror(logitmodel lm,
double[,] xy,
int ssize)
{
double result = 0;
double relcls = 0;
double avgce = 0;
double rms = 0;
double avg = 0;
double avgrel = 0;
alglib.ap.assert((int)Math.Round(lm.w[1])==logitvnum, "MNLRMSError: Incorrect MNL version!");
mnlallerrors(lm, xy, ssize, ref relcls, ref avgce, ref rms, ref avg, ref avgrel);
result = avgrel;
return result;
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:30,代码来源:dataanalysis.cs
示例3: mnlcopy
/*************************************************************************
Copying of LogitModel strucure
INPUT PARAMETERS:
LM1 - original
OUTPUT PARAMETERS:
LM2 - copy
-- ALGLIB --
Copyright 15.03.2009 by Bochkanov Sergey
*************************************************************************/
public static void mnlcopy(logitmodel lm1,
logitmodel 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: mnlavgce
/*************************************************************************
Average cross-entropy (in bits per element) on the test set
INPUT PARAMETERS:
LM - logit model
XY - test set
NPoints - test set size
RESULT:
CrossEntropy/(NPoints*ln(2)).
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static double mnlavgce(logitmodel lm,
double[,] xy,
int npoints)
{
double result = 0;
int nvars = 0;
int nclasses = 0;
int i = 0;
double[] workx = new double[0];
double[] worky = new double[0];
int i_ = 0;
alglib.ap.assert((double)(lm.w[1])==(double)(logitvnum), "MNLClsError: unexpected model version");
nvars = (int)Math.Round(lm.w[2]);
nclasses = (int)Math.Round(lm.w[3]);
workx = new double[nvars-1+1];
worky = new double[nclasses-1+1];
result = 0;
for(i=0; i<=npoints-1; i++)
{
alglib.ap.assert((int)Math.Round(xy[i,nvars])>=0 && (int)Math.Round(xy[i,nvars])<nclasses, "MNLAvgCE: incorrect class number!");
//
// Process
//
for(i_=0; i_<=nvars-1;i_++)
{
workx[i_] = xy[i,i_];
}
mnlprocess(lm, workx, ref worky);
if( (double)(worky[(int)Math.Round(xy[i,nvars])])>(double)(0) )
{
result = result-Math.Log(worky[(int)Math.Round(xy[i,nvars])]);
}
else
{
result = result-Math.Log(math.minrealnumber);
}
}
result = result/(npoints*Math.Log(2));
return result;
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:56,代码来源:dataanalysis.cs
示例5: P
/*************************************************************************
Unpacks coefficients of logit model. Logit model have form:
P(class=i) = S(i) / (S(0) + S(1) + ... +S(M-1))
S(i) = Exp(A[i,0]*X[0] + ... + A[i,N-1]*X[N-1] + A[i,N]), when i<M-1
S(M-1) = 1
INPUT PARAMETERS:
LM - logit model in ALGLIB format
OUTPUT PARAMETERS:
V - coefficients, array[0..NClasses-2,0..NVars]
NVars - number of independent variables
NClasses - number of classes
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static void mnlunpack(logitmodel lm,
ref double[,] a,
ref int nvars,
ref int nclasses)
{
int offs = 0;
int i = 0;
int i_ = 0;
int i1_ = 0;
a = new double[0,0];
nvars = 0;
nclasses = 0;
alglib.ap.assert((double)(lm.w[1])==(double)(logitvnum), "MNLUnpack: unexpected model version");
nvars = (int)Math.Round(lm.w[2]);
nclasses = (int)Math.Round(lm.w[3]);
offs = (int)Math.Round(lm.w[4]);
a = new double[nclasses-2+1, nvars+1];
for(i=0; i<=nclasses-2; i++)
{
i1_ = (offs+i*(nvars+1)) - (0);
for(i_=0; i_<=nvars;i_++)
{
a[i,i_] = lm.w[i_+i1_];
}
}
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:46,代码来源:dataanalysis.cs
示例6: format
/*************************************************************************
"Packs" coefficients and creates logit model in ALGLIB format (MNLUnpack
reversed).
INPUT PARAMETERS:
A - model (see MNLUnpack)
NVars - number of independent variables
NClasses - number of classes
OUTPUT PARAMETERS:
LM - logit model.
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static void mnlpack(double[,] a,
int nvars,
int nclasses,
logitmodel lm)
{
int offs = 0;
int i = 0;
int wdim = 0;
int ssize = 0;
int i_ = 0;
int i1_ = 0;
wdim = (nvars+1)*(nclasses-1);
offs = 5;
ssize = 5+(nvars+1)*(nclasses-1)+nclasses;
lm.w = new double[ssize-1+1];
lm.w[0] = ssize;
lm.w[1] = logitvnum;
lm.w[2] = nvars;
lm.w[3] = nclasses;
lm.w[4] = offs;
for(i=0; i<=nclasses-2; i++)
{
i1_ = (0) - (offs+i*(nvars+1));
for(i_=offs+i*(nvars+1); i_<=offs+i*(nvars+1)+nvars;i_++)
{
lm.w[i_] = a[i,i_+i1_];
}
}
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:45,代码来源:dataanalysis.cs
示例7: mnlprocess
/*************************************************************************
Procesing
INPUT PARAMETERS:
LM - logit model, passed by non-constant reference
(some fields of structure are used as temporaries
when calculating model output).
X - input vector, array[0..NVars-1].
Y - (possibly) preallocated buffer; if size of Y is less than
NClasses, it will be reallocated.If it is large enough, it
is NOT reallocated, so we can save some time on reallocation.
OUTPUT PARAMETERS:
Y - result, array[0..NClasses-1]
Vector of posterior probabilities for classification task.
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static void mnlprocess(logitmodel lm,
double[] x,
ref double[] y)
{
int nvars = 0;
int nclasses = 0;
int offs = 0;
int i = 0;
int i1 = 0;
double s = 0;
alglib.ap.assert((double)(lm.w[1])==(double)(logitvnum), "MNLProcess: unexpected model version");
nvars = (int)Math.Round(lm.w[2]);
nclasses = (int)Math.Round(lm.w[3]);
offs = (int)Math.Round(lm.w[4]);
mnliexp(ref lm.w, x);
s = 0;
i1 = offs+(nvars+1)*(nclasses-1);
for(i=i1; i<=i1+nclasses-1; i++)
{
s = s+lm.w[i];
}
if( alglib.ap.len(y)<nclasses )
{
y = new double[nclasses];
}
for(i=0; i<=nclasses-1; i++)
{
y[i] = lm.w[i1+i]/s;
}
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:50,代码来源:dataanalysis.cs
示例8: mnlserialize
/*************************************************************************
Serialization of LogitModel 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 mnlserialize(ref logitmodel 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] = logitvnum;
i1_ = (0) - (1);
for(i_=1; i_<=rlen-1;i_++)
{
ra[i_] = lm.w[i_+i1_];
}
}
开发者ID:palefacer,项目名称:TelescopeOrientation,代码行数:30,代码来源:logit.cs
示例9: make_copy
public override alglib.apobject make_copy()
{
logitmodel _result = new logitmodel();
_result.w = (double[])w.Clone();
return _result;
}
开发者ID:Kerbas-ad-astra,项目名称:MechJeb2,代码行数:6,代码来源:dataanalysis.cs
示例10: class
/*************************************************************************
This subroutine trains logit model.
INPUT PARAMETERS:
XY - training set, array[0..NPoints-1,0..NVars]
First NVars columns store values of independent
variables, next column stores number of class (from 0
to NClasses-1) which dataset element belongs to. Fractional
values are rounded to nearest integer.
NPoints - training set size, NPoints>=1
NVars - number of independent variables, NVars>=1
NClasses - number of classes, NClasses>=2
OUTPUT PARAMETERS:
Info - return code:
* -2, if there is a point with class number
outside of [0..NClasses-1].
* -1, if incorrect parameters was passed
(NPoints<NVars+2, NVars<1, NClasses<2).
* 1, if task has been solved
LM - model built
Rep - training report
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static void mnltrainh(double[,] xy,
int npoints,
int nvars,
int nclasses,
ref int info,
logitmodel lm,
mnlreport rep)
{
int i = 0;
int j = 0;
int k = 0;
int ssize = 0;
bool allsame = new bool();
int offs = 0;
double threshold = 0;
double wminstep = 0;
double decay = 0;
int wdim = 0;
int expoffs = 0;
double v = 0;
double s = 0;
mlpbase.multilayerperceptron network = new mlpbase.multilayerperceptron();
int nin = 0;
int nout = 0;
int wcount = 0;
double e = 0;
double[] g = new double[0];
double[,] h = new double[0,0];
bool spd = new bool();
double[] x = new double[0];
double[] y = new double[0];
double[] wbase = new double[0];
double wstep = 0;
double[] wdir = new double[0];
double[] work = new double[0];
int mcstage = 0;
logitmcstate mcstate = new logitmcstate();
int mcinfo = 0;
int mcnfev = 0;
int solverinfo = 0;
densesolver.densesolverreport solverrep = new densesolver.densesolverreport();
int i_ = 0;
int i1_ = 0;
info = 0;
threshold = 1000*math.machineepsilon;
wminstep = 0.001;
decay = 0.001;
//
// Test for inputs
//
if( (npoints<nvars+2 || nvars<1) || nclasses<2 )
{
info = -1;
return;
}
for(i=0; i<=npoints-1; i++)
{
if( (int)Math.Round(xy[i,nvars])<0 || (int)Math.Round(xy[i,nvars])>=nclasses )
{
info = -2;
return;
}
}
info = 1;
//
// Initialize data
//
rep.ngrad = 0;
rep.nhess = 0;
//.........这里部分代码省略.........
开发者ID:lgatto,项目名称:proteowizard,代码行数:101,代码来源:dataanalysis.cs
示例11: error
/*************************************************************************
Average relative error on the test set
INPUT PARAMETERS:
LM - logit model
XY - test set
NPoints - test set size
RESULT:
average relative error (error when estimating posterior probabilities).
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
public static double mnlavgrelerror(ref logitmodel lm,
ref double[,] xy,
int ssize)
{
double result = 0;
double relcls = 0;
double avgce = 0;
double rms = 0;
double avg = 0;
double avgrel = 0;
System.Diagnostics.Debug.Assert((int)Math.Round(lm.w[1])==logitvnum, "MNLRMSError: Incorrect MNL version!");
mnlallerrors(ref lm, ref xy, ssize, ref relcls, ref avgce, ref rms, ref avg, ref avgrel);
result = avgrel;
return result;
}
开发者ID:palefacer,项目名称:TelescopeOrientation,代码行数:30,代码来源:logit.cs
示例12: mnlrelclserror
/*************************************************************************
Relative classification error on the test set
INPUT PARAMETERS:
LM - logit model
XY - test set
NPoints - test set size
RESULT:
percent of incorrectly classified cases.
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static double mnlrelclserror(ref logitmodel lm,
ref double[,] xy,
int npoints)
{
double result = 0;
result = (double)(mnlclserror(ref lm, ref xy, npoints))/(double)(npoints);
return result;
}
开发者ID:palefacer,项目名称:TelescopeOrientation,代码行数:23,代码来源:logit.cs
示例13: mnlunserialize
/*************************************************************************
Unserialization of LogitModel strucure
INPUT PARAMETERS:
RA - real array which stores model
OUTPUT PARAMETERS:
LM - restored model
-- ALGLIB --
Copyright 15.03.2009 by Bochkanov Sergey
*************************************************************************/
public static void mnlunserialize(ref double[] ra,
ref logitmodel lm)
{
int i_ = 0;
int i1_ = 0;
System.Diagnostics.Debug.Assert((int)Math.Round(ra[0])==logitvnum, "MNLUnserialize: 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,代码来源:logit.cs
示例14: mnlclserror
/*************************************************************************
Classification error on test set = MNLRelClsError*NPoints
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static int mnlclserror(logitmodel lm,
double[,] xy,
int npoints)
{
int result = 0;
int nvars = 0;
int nclasses = 0;
int i = 0;
int j = 0;
double[] workx = new double[0];
double[] worky = new double[0];
int nmax = 0;
int i_ = 0;
alglib.ap.assert((double)(lm.w[1])==(double)(logitvnum), "MNLClsError: unexpected model version");
nvars = (int)Math.Round(lm.w[2]);
nclasses = (int)Math.Round(lm.w[3]);
workx = new double[nvars-1+1];
worky = new double[nclasses-1+1];
result = 0;
for(i=0; i<=npoints-1; i++)
{
//
// Process
//
for(i_=0; i_<=nvars-1;i_++)
{
workx[i_] = xy[i,i_];
}
mnlprocess(lm, workx, ref worky);
//
// Logit version of the answer
//
nmax = 0;
for(j=0; j<=nclasses-1; j++)
{
if( (double)(worky[j])>(double)(worky[nmax]) )
{
nmax = j;
}
}
//
// compare
//
if( nmax!=(int)Math.Round(xy[i,nvars]) )
{
result = result+1;
}
}
return result;
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:60,代码来源:dataanalysis.cs
示例15: MNLProcess
/*************************************************************************
'interactive' variant of MNLProcess for languages like Python which
support constructs like "Y = MNLProcess(LM,X)" and interactive mode of the
interpreter
This function allocates new array on each call, so it is significantly
slower than its 'non-interactive' counterpart, but it is more convenient
when you call it from command line.
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static void mnlprocessi(logitmodel lm,
double[] x,
ref double[] y)
{
y = new double[0];
mnlprocess(lm, x, ref y);
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:20,代码来源:dataanalysis.cs
示例16: mnlallerrors
/*************************************************************************
Calculation of all types of errors
-- ALGLIB --
Copyright 30.08.2008 by Bochkanov Sergey
*************************************************************************/
private static void mnlallerrors(logitmodel lm,
double[,] xy,
int npoints,
ref double relcls,
ref double avgce,
ref double rms,
ref double avg,
ref double avgrel)
{
int nvars = 0;
int nclasses = 0;
int i = 0;
double[] buf = new double[0];
double[] workx = new double[0];
double[] y = new double[0];
double[] dy = new double[0];
int i_ = 0;
relcls = 0;
avgce = 0;
rms = 0;
avg = 0;
avgrel = 0;
alglib.ap.assert((int)Math.Round(lm.w[1])==logitvnum, "MNL unit: Incorrect MNL version!");
nvars = (int)Math.Round(lm.w[2]);
nclasses = (int)Math.Round(lm.w[3]);
workx = new double[nvars-1+1];
y = new double[nclasses-1+1];
dy = new double[0+1];
bdss.dserrallocate(nclasses, ref buf);
for(i=0; i<=npoints-1; i++)
{
for(i_=0; i_<=nvars-1;i_++)
{
workx[i_] = xy[i,i_];
}
mnlprocess(lm, workx, ref y);
dy[0] = xy[i,nvars];
bdss.dserraccumulate(ref buf, y, dy);
}
bdss.dserrfinish(ref buf);
relcls = buf[0];
avgce = buf[1];
rms = buf[2];
avg = buf[3];
avgrel = buf[4];
}
开发者ID:lgatto,项目名称:proteowizard,代码行数:54,代码来源:dataanalysis.cs
示例17: mnlprocess
/*************************************************************************
Procesing
INPUT PARAMETERS:
LM - logit model, passed by non-constant reference
(some fields of structure are used as temporaries
when calculating model output).
X - input vector, array[0..NVars-1].
OUTPUT PARAMETERS:
Y - result, array[0..NClasses-1]
Vector of posterior probabilities for classification task.
Subroutine does not allocate memory for this vector, it is
responsibility of a caller to allocate it. Array must be
at least [0..NClasses-1].
-- ALGLIB --
Copyright 10.09.2008 by Bochkanov Sergey
*************************************************************************/
public static void mnlprocess(ref logitmodel lm,
ref double[] x,
ref double[] y)
{
int nvars = 0;
int nclasses = 0;
int offs = 0;
int i = 0;
int i1 = 0;
double s = 0;
System.Diagnostics.Debug.Assert((double)(lm.w[1])==(double)(logitvnum), "MNLProcess: unexpected model version");
nvars = (int)Math.Round(lm.w[2]);
nclasses = (int)Math.Round(lm.w[3]);
offs = (int)Math.Round(lm.w[4]);
mnliexp(ref lm.w, ref x);
s = 0;
i1 = offs+(nvars+1)*(nclasses-1);
for(i=i1; i<=i1+nclasses-1; i++)
{
s = s+lm.w[i];
}
for(i=0; i<=nclasses-1; i++)
{
y[i] = lm.w[i1+i]/s;
}
}
开发者ID:palefacer,项目名称:TelescopeOrientation,代码行数:46,代码来源:logit.cs
注:本文中的logitmodel类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论