Python中的随机森林实现



all!

有人能给我一个关于Python中随机森林实现的建议吗?理想情况下,我需要输出尽可能多的分类器信息的东西,尤其是:

  1. 训练集中的哪些向量用于训练每个决策树木
  2. 在每个节点中随机选择哪些特征树,来自训练集的样本最终出现在该节点中选择要拆分的特征,以及使用哪个threashold分割

我已经找到了一些实现,最著名的可能来自scikit,但不清楚如何在那里执行(1)和(2)(见这个问题)。其他实现似乎也有同样的问题,除了openCV中的一个,但它是在C++中实现的(python接口并没有涵盖随机森林的所有方法)。

有人知道满足(1)和(2)的东西吗?或者,你知道如何改进scikit实现以获得特性(1)和(2)吗?

已解决:检查了sklearn.tree._tree.tree的源代码。它有很好的评论(完全描述了树):

 children_left : int*
    children_left[i] holds the node id of the left child of node i.
    For leaves, children_left[i] == TREE_LEAF. Otherwise,
    children_left[i] > i. This child handles the case where
    X[:, feature[i]] <= threshold[i].
children_right : int*
    children_right[i] holds the node id of the right child of node i.
    For leaves, children_right[i] == TREE_LEAF. Otherwise,
    children_right[i] > i. This child handles the case where
    X[:, feature[i]] > threshold[i].
feature : int*
    feature[i] holds the feature to split on, for the internal node i.
threshold : double*
    threshold[i] holds the threshold for the internal node i.

您可以在scikit learn中获得几乎所有的信息。到底是什么问题?您甚至可以使用点来可视化这些树。我不认为你能发现哪些分裂的候选人是随机抽样的,但你可以发现哪些最终被选中了。编辑:查看决策树的tree_属性。我同意,它没有很好的记录。确实应该有一个例子来可视化叶子分布等。你可以看看可视化函数,了解如何获得属性。

相关内容

  • 没有找到相关文章

最新更新