我必须在C ++(并且只有C ++)中创建一个随机森林实现,并具有在运行时(或至少定期)合并其他训练数据的范围。在大多数情况下,这将是一个分类问题。
请注意,我对机器学习和C ++还是陌生的,所以我的观点可能有点像新手。
数据将实时流式传输。
我所决定的步骤如下所述
收集大量的训练数据(我将从组织中历史存储的数据中获取)
创建一个n元树数据结构。请建议二叉树是否会是更好的选择!
创建一些算法来确定森林中的树木数量。这里有任何建议吗?
执行代码可创建大量训练数据的随机子集。子集的数量应等于步骤3中确定的树的数量。
基于训练数据的每个随机子集,实施算法,该算法决定将哪个预测变量参数用作围绕树进行拆分的节点。 这可以基于迭代Dichotomiser-3(熵和信息增益)或基尼系数(基尼杂质)。
一旦完成了创建决策树的大任务(在完成第2、3、4和5步之后),请创建具有在第3步中确定的树数的森林。
一旦测试数据到达,就将其提供给森林。
将决策树的决策存储在某个地方。
进行多数表决并得出最终结果。
请让我知道它是否像新手一样! 请指出错误或改进建议。 请添加其他要点。
稍后我将发布一个补充问题,要求定期合并实时数据。