2017-06-14 28 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 –