Machine Learning with Scikit-Learn and Tensorflow 6.5 计算复杂度

来源:互联网 发布:雨花台网络问政 编辑:程序博客网 时间:2024/06/05 19:59

书籍信息
Hands-On Machine Learning with Scikit-Learn and Tensorflow
出版社: O’Reilly Media, Inc, USA
平装: 566页
语种: 英语
ISBN: 1491962291
条形码: 9781491962299
商品尺寸: 18 x 2.9 x 23.3 cm
ASIN: 1491962291

系列博文为书籍中文翻译
代码以及数据下载:https://github.com/ageron/handson-ml

利用决策树进行预测时需要从根结点前进到叶结点。考虑到决策树通常基本是平衡的,利用决策树进行预测需要遍历的结点数量是O(log2m)。因为每个结点值需要检查特定特征,所以利用决策树进行预测的时间复杂度是O(log2m),与特征数量无关。所以决策树的预测非常迅速,即使是面对庞大的训练数据。

然而,决策树需要在每个结点比较所有样本的所有特征,导致决策树的训练复杂度是O(nmlog2m)。在训练数据集较小时,scikit-learn可以通过对数据进行预排序加速训练(设置presort=True),但是,对于庞大的训练数据集,这样的措施会降低训练的速度。

译者注:
这里的n感觉应该是特征数量。
这里的m感觉应该是样本数量。
CART生长时,把所有特征内的值都作为分裂候选,并为其计算评价指标(信息增益/基尼不纯度),所以每层是O(nm)log2m层的树就是O(nmlog2m)

0 0
原创粉丝点击