1

我在 Python 中使用的随机森林的实现有点麻烦。请记住,我很清楚 Python 并非用于高效的数字运算。选择更多是基于希望对 Python 有更深入的了解和额外的经验。我想找到一个解决方案,使其“合理”。

话虽如此,我很好奇这里是否有人可以对我的实现提出一些性能改进建议。通过分析器运行它,很明显大部分时间都花在了执行 list “append” 命令和我的数据集拆分操作上。本质上,我有一个大型数据集实现为矩阵(而不是列表列表)。我正在使用该数据集构建决策树,因此我将拆分具有最高信息增益的列。拆分包括创建两个新数据集,其中仅包含与某些标准匹配的行。新数据集是通过初始化两个空列表并向它们附加适当的行来生成的。

我事先不知道列表的大小,所以我不能预先分配它们,除非可以预先分配丰富的列表空间,然后在最后更新列表大小(我在任何地方都没有看到这个引用) .

有没有更好的方法在 python 中处理这个任务?

4

1 回答 1

1

在没有看到您的代码的情况下,很难给出任何具体的建议,因为优化是依赖于代码的过程,具体情况会有所不同。但是还是有一些通用的东西:

  1. 检查您的算法,尝试减少循环次数。看起来你有很多循环,其中一些深深嵌入其他循环中(我猜)。
  2. 如果可能,请使用更高性能的实用程序模块,例如 itertools,而不是自己编写的幼稚代码。
  3. 如果您有兴趣,请尝试 PyPy ( http://pypy.org/ ),它是 Python 的面向性能的实现。
于 2012-03-15T22:05:22.687 回答