2017-06-14 22 views

回答

1

不,scikit-learn树在编译时使用double类型的阈值(请参阅https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx)。固定的数据类型允许生成高效的C代码。您必须更改scikit-learn源代码,从Cython .pyx文件重建C扩展,然后安装修改后的scikit-learn以使用整数阈值。

+0

在引用的_tree.pyx文件中:'从numpy导入float32作为DTYPE'。所以它现在是'float'而不是'double' – user1808924

+0

DTYPE是一种内部用于输入数据的类型,而不是用于阈值的类型;如果您在此文件中搜索“阈值”,则可以看到它使用了双精度。也许更好的链接可以是https://github.com/scikit-learn/scikit-learn/blob/fc2f24927fc37d7e42917369f17de045b14c59b5/sklearn/tree/_tree.pxd#L25 –