如何在C ++中从零开始实现随机森林算法

时间:2019-01-31 05:46:44

标签: c++ machine-learning random-forest

我必须在C ++(并且只有C ++)中创建一个随机森林实现,并具有在运行时(或至少定期)合并其他训练数据的范围。在大多数情况下,这将是一个分类问题。

请注意,我对机器学习和C ++还是陌生的,所以我的观点可能有点像新手。

数据将实时流式传输。

我所决定的步骤如下所述

  1. 收集大量的训练数据(我将从组织中历史存储的数据中获取)

  2. 创建一个n元树数据结构。请建议二叉树是否会是更好的选择!

  3. 创建一些算法来确定森林中的树木数量。这里有任何建议吗?

  4. 执行代码可创建大量训练数据的随机子集。子集的数量应等于步骤3中确定的树的数量。

  5. 基于训练数据的每个随机子集,实施算法,该算法决定将哪个预测变量参数用作围绕树进行拆分的节点。 这可以基于迭代Dichotomiser-3(熵和信息增益)或基尼系数(基尼杂质)。

  6. 一旦完成了创建决策树的大任务(在完成第2、3、4和5步之后),请创建具有在第3步中确定的树数的森林。

  7. 一旦测试数据到达,就将其提供给森林。

  8. 将决策树的决策存储在某个地方。

  9. 进行多数表决并得出最终结果。

请让我知道它是否像新手一样! 请指出错误或改进建议。 请添加其他要点。

稍后我将发布一个补充问题,要求定期合并实时数据。

0 个答案:

没有答案