本文整理汇总了C#中decisionforest类的典型用法代码示例。如果您正苦于以下问题:C# decisionforest类的具体用法?C# decisionforest怎么用?C# decisionforest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
decisionforest类属于命名空间,在下文中一共展示了decisionforest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: dfprocess
/*************************************************************************
Procesing
INPUT PARAMETERS:
DF - decision forest model
X - input vector, array[0..NVars-1].
OUTPUT PARAMETERS:
Y - result. Regression estimate when solving regression task,
vector of posterior probabilities for classification task.
See also DFProcessI.
-- ALGLIB --
Copyright 16.02.2009 by Bochkanov Sergey
*************************************************************************/
public static void dfprocess(decisionforest df,
double[] x,
ref double[] y)
{
int offs = 0;
int i = 0;
double v = 0;
int i_ = 0;
//
// Proceed
//
if( alglib.ap.len(y)<df.nclasses )
{
y = new double[df.nclasses];
}
offs = 0;
for(i=0; i<=df.nclasses-1; i++)
{
y[i] = 0;
}
for(i=0; i<=df.ntrees-1; i++)
{
//
// Process basic tree
//
dfprocessinternal(df, offs, x, ref y);
//
// Next tree
//
offs = offs+(int)Math.Round(df.trees[offs]);
}
v = (double)1/(double)df.ntrees;
for(i_=0; i_<=df.nclasses-1;i_++)
{
y[i_] = v*y[i_];
}
}
示例2: DFProcessI
/*************************************************************************
'interactive' variant of DFProcess for languages like Python which support
constructs like "Y = DFProcessI(DF,X)" and interactive mode of 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 28.02.2010 by Bochkanov Sergey
*************************************************************************/
public static void dfprocessi(decisionforest df,
double[] x,
ref double[] y)
{
y = new double[0];
dfprocess(df, x, ref y);
}
示例3: dfclserror
/*************************************************************************
Classification error
*************************************************************************/
private static int dfclserror(decisionforest df,
double[,] xy,
int npoints)
{
int result = 0;
double[] x = new double[0];
double[] y = new double[0];
int i = 0;
int j = 0;
int k = 0;
int tmpi = 0;
int i_ = 0;
if( df.nclasses<=1 )
{
result = 0;
return result;
}
x = new double[df.nvars-1+1];
y = new double[df.nclasses-1+1];
result = 0;
for(i=0; i<=npoints-1; i++)
{
for(i_=0; i_<=df.nvars-1;i_++)
{
x[i_] = xy[i,i_];
}
dfprocess(df, x, ref y);
k = (int)Math.Round(xy[i,df.nvars]);
tmpi = 0;
for(j=1; j<=df.nclasses-1; j++)
{
if( (double)(y[j])>(double)(y[tmpi]) )
{
tmpi = j;
}
}
if( tmpi!=k )
{
result = result+1;
}
}
return result;
}
示例4: dfprocess
/*************************************************************************
Procesing
INPUT PARAMETERS:
DF - decision forest model
X - input vector, array[0..NVars-1].
OUTPUT PARAMETERS:
Y - result. Regression estimate when solving regression task,
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 16.02.2009 by Bochkanov Sergey
*************************************************************************/
public static void dfprocess(ref decisionforest df,
ref double[] x,
ref double[] y)
{
int offs = 0;
int i = 0;
double v = 0;
int i_ = 0;
//
// Proceed
//
offs = 0;
for(i=0; i<=df.nclasses-1; i++)
{
y[i] = 0;
}
for(i=0; i<=df.ntrees-1; i++)
{
//
// Process basic tree
//
dfprocessinternal(ref df, offs, ref x, ref y);
//
// Next tree
//
offs = offs+(int)Math.Round(df.trees[offs]);
}
v = (double)(1)/(double)(df.ntrees);
for(i_=0; i_<=df.nclasses-1;i_++)
{
y[i_] = v*y[i_];
}
}
示例5: dfcopy
/*************************************************************************
Copying of DecisionForest strucure
INPUT PARAMETERS:
DF1 - original
OUTPUT PARAMETERS:
DF2 - copy
-- ALGLIB --
Copyright 13.02.2009 by Bochkanov Sergey
*************************************************************************/
public static void dfcopy(decisionforest df1,
decisionforest df2)
{
int i_ = 0;
df2.nvars = df1.nvars;
df2.nclasses = df1.nclasses;
df2.ntrees = df1.ntrees;
df2.bufsize = df1.bufsize;
df2.trees = new double[df1.bufsize-1+1];
for(i_=0; i_<=df1.bufsize-1;i_++)
{
df2.trees[i_] = df1.trees[i_];
}
}
示例6: dfserialize
/*************************************************************************
Serializer: serialization
-- ALGLIB --
Copyright 14.03.2011 by Bochkanov Sergey
*************************************************************************/
public static void dfserialize(alglib.serializer s,
decisionforest forest)
{
s.serialize_int(scodes.getrdfserializationcode());
s.serialize_int(dffirstversion);
s.serialize_int(forest.nvars);
s.serialize_int(forest.nclasses);
s.serialize_int(forest.ntrees);
s.serialize_int(forest.bufsize);
apserv.serializerealarray(s, forest.trees, forest.bufsize);
}
示例7: dfprocess
/*************************************************************************
Procesing
INPUT PARAMETERS:
DF - decision forest model
X - input vector, array[0..NVars-1].
OUTPUT PARAMETERS:
Y - result. Regression estimate when solving regression task,
vector of posterior probabilities for classification task.
See also DFProcessI.
-- ALGLIB --
Copyright 16.02.2009 by Bochkanov Sergey
*************************************************************************/
public static void dfprocess(decisionforest df, double[] x, ref double[] y)
{
dforest.dfprocess(df.innerobj, x, ref y);
return;
}
示例8: dfrmserror
/*************************************************************************
RMS error on the test set
INPUT PARAMETERS:
DF - decision forest model
XY - test set
NPoints - test set size
RESULT:
root mean square error.
Its meaning for regression task is obvious. As for
classification task, RMS error means error when estimating posterior
probabilities.
-- ALGLIB --
Copyright 16.02.2009 by Bochkanov Sergey
*************************************************************************/
public static double dfrmserror(decisionforest df,
double[,] xy,
int npoints)
{
double result = 0;
double[] x = new double[0];
double[] y = new double[0];
int i = 0;
int j = 0;
int k = 0;
int tmpi = 0;
int i_ = 0;
x = new double[df.nvars-1+1];
y = new double[df.nclasses-1+1];
result = 0;
for(i=0; i<=npoints-1; i++)
{
for(i_=0; i_<=df.nvars-1;i_++)
{
x[i_] = xy[i,i_];
}
dfprocess(df, x, ref y);
if( df.nclasses>1 )
{
//
// classification-specific code
//
k = (int)Math.Round(xy[i,df.nvars]);
tmpi = 0;
for(j=1; j<=df.nclasses-1; j++)
{
if( (double)(y[j])>(double)(y[tmpi]) )
{
tmpi = j;
}
}
for(j=0; j<=df.nclasses-1; j++)
{
if( j==k )
{
result = result+math.sqr(y[j]-1);
}
else
{
result = result+math.sqr(y[j]);
}
}
}
else
{
//
// regression-specific code
//
result = result+math.sqr(y[0]-xy[i,df.nvars]);
}
}
result = Math.Sqrt(result/(npoints*df.nclasses));
return result;
}
示例9: dfunserialize
/*************************************************************************
Unserialization of DecisionForest strucure
INPUT PARAMETERS:
RA - real array which stores decision forest
OUTPUT PARAMETERS:
DF - restored structure
-- ALGLIB --
Copyright 13.02.2009 by Bochkanov Sergey
*************************************************************************/
public static void dfunserialize(ref double[] ra,
ref decisionforest df)
{
int i_ = 0;
int i1_ = 0;
System.Diagnostics.Debug.Assert((int)Math.Round(ra[0])==dfvnum, "DFUnserialize: incorrect array!");
df.nvars = (int)Math.Round(ra[1]);
df.nclasses = (int)Math.Round(ra[2]);
df.ntrees = (int)Math.Round(ra[3]);
df.bufsize = (int)Math.Round(ra[4]);
df.trees = new double[df.bufsize-1+1];
i1_ = (5) - (0);
for(i_=0; i_<=df.bufsize-1;i_++)
{
df.trees[i_] = ra[i_+i1_];
}
}
示例10: dfbuildrandomdecisionforest
/*************************************************************************
This subroutine builds random decision forest.
INPUT PARAMETERS:
XY - training set
NPoints - training set size, NPoints>=1
NVars - number of independent variables, NVars>=1
NClasses - task type:
* NClasses=1 - regression task with one
dependent variable
* NClasses>1 - classification task with
NClasses classes.
NTrees - number of trees in a forest, NTrees>=1.
recommended values: 50-100.
R - percent of a training set used to build
individual trees. 0<R<=1.
recommended values: 0.1 <= R <= 0.66.
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<1, NVars<1, NClasses<1, NTrees<1, R<=0
or R>1).
* 1, if task has been solved
DF - model built
Rep - training report, contains error on a training set
and out-of-bag estimates of generalization error.
-- ALGLIB --
Copyright 19.02.2009 by Bochkanov Sergey
*************************************************************************/
public static void dfbuildrandomdecisionforest(double[,] xy, int npoints, int nvars, int nclasses, int ntrees, double r, out int info, out decisionforest df, out dfreport rep)
{
info = 0;
df = new decisionforest();
rep = new dfreport();
dforest.dfbuildrandomdecisionforest(xy, npoints, nvars, nclasses, ntrees, r, ref info, df.innerobj, rep.innerobj);
return;
}
示例11: dfserialize
/*************************************************************************
Serialization of DecisionForest strucure
INPUT PARAMETERS:
DF - original
OUTPUT PARAMETERS:
RA - array of real numbers which stores decision forest,
array[0..RLen-1]
RLen - RA lenght
-- ALGLIB --
Copyright 13.02.2009 by Bochkanov Sergey
*************************************************************************/
public static void dfserialize(ref decisionforest df,
ref double[] ra,
ref int rlen)
{
int i_ = 0;
int i1_ = 0;
ra = new double[df.bufsize+5-1+1];
ra[0] = dfvnum;
ra[1] = df.nvars;
ra[2] = df.nclasses;
ra[3] = df.ntrees;
ra[4] = df.bufsize;
i1_ = (0) - (5);
for(i_=5; i_<=5+df.bufsize-1;i_++)
{
ra[i_] = df.trees[i_+i1_];
}
rlen = 5+df.bufsize;
}
示例12: dfavgerror
/*************************************************************************
Average error on the test set
INPUT PARAMETERS:
DF - decision forest model
XY - test set
NPoints - test set size
RESULT:
Its meaning for regression task is obvious. As for
classification task, it means average error when estimating posterior
probabilities.
-- ALGLIB --
Copyright 16.02.2009 by Bochkanov Sergey
*************************************************************************/
public static double dfavgerror(ref decisionforest df,
ref double[,] xy,
int npoints)
{
double result = 0;
double[] x = new double[0];
double[] y = new double[0];
int i = 0;
int j = 0;
int k = 0;
int i_ = 0;
x = new double[df.nvars-1+1];
y = new double[df.nclasses-1+1];
result = 0;
for(i=0; i<=npoints-1; i++)
{
for(i_=0; i_<=df.nvars-1;i_++)
{
x[i_] = xy[i,i_];
}
dfprocess(ref df, ref x, ref y);
if( df.nclasses>1 )
{
//
// classification-specific code
//
k = (int)Math.Round(xy[i,df.nvars]);
for(j=0; j<=df.nclasses-1; j++)
{
if( j==k )
{
result = result+Math.Abs(y[j]-1);
}
else
{
result = result+Math.Abs(y[j]);
}
}
}
else
{
//
// regression-specific code
//
result = result+Math.Abs(y[0]-xy[i,df.nvars]);
}
}
result = result/(npoints*df.nclasses);
return result;
}
示例13: dfrelclserror
/*************************************************************************
Relative classification error on the test set
INPUT PARAMETERS:
DF - decision forest model
XY - test set
NPoints - test set size
RESULT:
percent of incorrectly classified cases.
Zero if model solves regression task.
-- ALGLIB --
Copyright 16.02.2009 by Bochkanov Sergey
*************************************************************************/
public static double dfrelclserror(ref decisionforest df,
ref double[,] xy,
int npoints)
{
double result = 0;
result = (double)(dfclserror(ref df, ref xy, npoints))/(double)(npoints);
return result;
}
示例14: dfrelclserror
/*************************************************************************
Relative classification error on the test set
INPUT PARAMETERS:
DF - decision forest model
XY - test set
NPoints - test set size
RESULT:
percent of incorrectly classified cases.
Zero if model solves regression task.
-- ALGLIB --
Copyright 16.02.2009 by Bochkanov Sergey
*************************************************************************/
public static double dfrelclserror(decisionforest df,
double[,] xy,
int npoints)
{
double result = 0;
result = (double)dfclserror(df, xy, npoints)/(double)npoints;
return result;
}
示例15: DFProcessI
/*************************************************************************
'interactive' variant of DFProcess for languages like Python which support
constructs like "Y = DFProcessI(DF,X)" and interactive mode of 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 28.02.2010 by Bochkanov Sergey
*************************************************************************/
public static void dfprocessi(decisionforest df, double[] x, out double[] y)
{
y = new double[0];
dforest.dfprocessi(df.innerobj, x, ref y);
return;
}