//+------------------------------------------------------------------+//| 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. |//+------------------------------------------------------------------+staticvoid CDForest::DFBuildRandomDecisionForest(CMatrixDouble &xy,
constint npoints,
constint nvars,
constint nclasses,
constint ntrees,
constdouble r,int &info,
CDecisionForest &df,
CDFReport &rep)
例如,在这个变体上有1000个输入,其中600个在加号中工作(我猜的),400个在红号中工作(我猜的)。所以误差是与所有变体有关的未猜测的选项数量,在这个例子中,误差=400/1000=0.4
恭敬地说。
我不知道它对别人是如何工作的,但对我来说,它计算的是非幸运变体的百分比。
例如,在这个变体上有1000个条目,其中600个在加号中工作(我猜的),400个在红号中工作(我没猜)。 所以误差是与所有变体有关的非猜测选项的数量,在这个例子中,误差=400/1000=0.4
恭敬地说。
在这里,我理解最终的误差是除以样本数乘以输入数的某种原因,如果你把它删除。
return(result/(npoints*df.m_nclasses));
如果你把它乘回去,你会得到一个相当明白的结果,例如0.5578064232767638 :)
在这里,我理解最终的误差是除以样本数乘以输入数的某种原因,如果你把它删除。
如果你把它乘回来,那么结果就很清楚了,例如0.5578064232767638 :)
指_点(点)像猜测的点,从...。或反之亦然。
注意到。
最有可能的是
意味着_点(点)像猜测的点,从......。或反之亦然。
最好的问候。
不,这里的npoints是指输入矢量的长度 :)
而nclasses是输出的数量,如何
因此,最终的误差应该乘以训练样本的长度,再乘以输出的数量(如果是1,那么输出应该被省略)。
可能对某人有用
我希望我没有混淆任何东西,并且做得很好:)至少错误值是清楚的。不,这里的npoints是指输入矢量的长度 :)
恕我直言。
如果是这样的话,那么我需要看看rezult是什么,因为除数是输入参数。
恕我直言。
简而言之,这只是所有样本的平均误差,我们不需要它...rezult只返回总误差,然后将其除以样本中的例子数量(可以删除)。
简而言之,这只是所有样本的平均误差,你不需要它...rezult只返回总误差,然后将其除以样本中的例子数量。
所以,你需要把它恢复到正常状态,你通过乘以除数来做到这一点。
Т.е. итоговую ошибку нужно домножить на длину обучающей выборки умноженную на кол-во выходов (если 1 то выходы опускаем)
恕我直言。
所以需要把它恢复到正常状态,你已经通过乘以除数完成了这一工作。
恕我直言。
这是一种调整东西,然后像孩子一样欢欣鼓舞的感觉 :)
当你调整了一些东西,然后像孩子一样欢呼雀跃的感觉 :)
真诚的。
从理论上讲,随机森林 应该没有什么错误,因为所有的变量都用在决策树中,而且不像神经网络那样对内存的使用有限制--神经元的数量。在那里,你只能使用单独的操作来 "模糊 "结果,例如等级限制、修剪树木或双陆棋。我不知道在MQ的alglib实现中是否有修剪,有标签的存在
如果这个变量小于1,误差应该增加。